私は非常に単純なテーブル構造を持っており、音楽は異なる言語であるため、データベースの音楽を保存しているので、song_language列で曲を並べ替えています。テーブル構造は次のようになります。
id title song_language
さまざまな言語で約100万曲ありますが、フィルターで除外しようとすると、その特定の言語のすべての曲がスキャンされます。song_language ='Eng'と言うと、500000曲すべてがスキャンされますが、3曲だけが必要で、song_language列のインデックスが適切に作成されています。これが私のクエリです。
SELECT * FROM tableA WHERE song_language='Eng' limit 6
実行には0.0009秒かかるので、私は満足していますが、説明は別のことを言っています
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE tableA ref song_language song_language 167 const 462591 Using where
注文後の出力
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE tableA ref song_language primary 4 null 11 Using where
したがって、インデックスを使用していないと思います。このクエリを実行すると、前のクエリに対して0.0035秒かかり、順序付けなしで0.0009秒しかかかりませんでした。
誰もがこの奇妙な説明の出力に光を当てることができますか?