INT の列を持つ 200k エントリのテーブルがあります。クエリを高速化するためにインデックスを作成したいと考えています。これは実行したいクエリです: SELECT A,B,C,D,E FROM table WHERE A=23 and (B=45 or C=43)
. 次のインデックスを作成しました: B
、ACD
、。C
ABC
コマンドを使用するEXPLAIN
と、MySQL が index を選択することがわかりましたACD
。そのため、テーブルにさらに多くの値を入力し続けたところ、MySQL が上記のインデックスを切り替えていることに気付きました (常に同じであるとは限りません)。
多くの挿入があるため、さまざまなインデックスを持つとパフォーマンスの問題が発生し、このテーブルは、すべてのインデックスが意味を持つ異なる列を必要とする他のクエリによってアクセスされると想定できます。
については承知してUSE INDEX()
いますが、MySQL を信頼して正しいインデックスを選択する必要があるかどうかを理解したいと思います。