私はテーブルにdone_status(done_status = INT)のみのインデックスを設定しました:
私が使うとき:
EXPLAIN SELECT * FROM reminder WHERE done_status=2
私はこれを取り戻します:
id select_typeテーブルタイプの可能性ありのキーキーのkey_len ref rows Extra 1簡単なリマインダーALL done_status NULL NULL NULL 5 whereの使用
しかし、このコマンドを発行すると:
EXPLAIN SELECT * FROM reminder WHERE done_status=1
以下が返されます:
id select_typeテーブルタイプの可能性ありのキーキーのkey_len ref rows Extra 1 SIMPLE reminder ref done_status done_status 4 const 2
EXPLAIN
それは5行、二回目2行を使用していることを示してくれ。
インデックスが使用されているとは思いません。最初に正しく理解した場合は、3行になるはずです。何が悪いのでしょうか?
SHOW INDEX FROM reminder
:
テーブルNon_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment Index_comment リマインダー1 done_status 1 done_status A 5 NULL NULL BTREE
拡張説明:
id select_typeテーブルタイプ 1 SIMPLE reminder ref done_status done_status 4 const 2 100.00
show warnings
何も興味を示さなかった。