時々非常に遅いクエリの 1 つに問題があります。
SELECT * FROM table WHERE primary_key IN (1,2,...)
約 100 のエントリで非常に遅く、時には 5 秒もかかります。明らかに、主キーにインデックスがあります。このクエリを最適化する方法はありますか。テーブルは、1 億エントリ程度のやや大きなものです。
時々非常に遅いクエリの 1 つに問題があります。
SELECT * FROM table WHERE primary_key IN (1,2,...)
約 100 のエントリで非常に遅く、時には 5 秒もかかります。明らかに、主キーにインデックスがあります。このクエリを最適化する方法はありますか。テーブルは、1 億エントリ程度のやや大きなものです。
100M レコードのテーブルの場合、クエリの最適化は単純であるため、実際には多くのことを行うことはできません。調べることができるのは、MySQL 構成の調整です。
テーブルが InnoDB/XtraDB の場合 (これらのエンジンを使用することをお勧めしない場合) は、innodb_buffer_pool_size
変数を調べることができます。クエリで最高のパフォーマンスを実現するには、使用するインデックスがメモリに収まることが不可欠です。
EXPLAIN を投稿できますか。おそらく何か怪しいことが起こっています。
また、これが MyISAM データベース テーブルであり、同時 INSERT が多い場合、テーブルは挿入中にロックされるため、この間に SELECT がブロックされる可能性があります。