1

時々非常に遅いクエリの 1 つに問題があります。

SELECT * FROM table WHERE primary_key IN (1,2,...)

約 100 のエントリで非常に遅く、時には 5 秒もかかります。明らかに、主キーにインデックスがあります。このクエリを最適化する方法はありますか。テーブルは、1 億エントリ程度のやや大きなものです。

4

2 に答える 2

0

100M レコードのテーブルの場合、クエリの最適化は単純であるため、実際には多くのことを行うことはできません。調べることができるのは、MySQL 構成の調整です。

テーブルが InnoDB/XtraDB の場合 (これらのエンジンを使用することをお勧めしない場合) は、innodb_buffer_pool_size変数を調べることができます。クエリで最高のパフォーマンスを実現するには、使用するインデックスがメモリに収まることが不可欠です。

于 2012-07-25T12:32:07.580 に答える
0

EXPLAIN を投稿できますか。おそらく何か怪しいことが起こっています。

また、これが MyISAM データベース テーブルであり、同時 INSERT が多い場合、テーブルは挿入中にロックされるため、この間に SELECT がブロックされる可能性があります。

于 2012-07-25T11:59:53.383 に答える