sql >> データベース >  >> RDS >> Mysql

このクエリがインデックスの代わりにwhereを使用しているのはなぜですか?

    EXPLAINの出力 誤解を招く場合があります。

    たとえば、filesort ファイルとは何の関係もありません。using where WHEREを使用しているという意味ではありません 句、およびusing index 単一のインデックスが定義されていなくても、テーブルに表示される可能性があります。

    Using where テーブルに制限句があることを意味します(WHERE またはON )、すべてのレコードが返されるわけではありません。 LIMITに注意してください 制限条項としてカウントされません(ただし、カウントされる可能性があります)。

    Using index これは、テーブル内のレコードを検索せずに、すべての情報がインデックスから返されることを意味します。これは、クエリに必要なすべてのフィールドがインデックスでカバーされている場合にのみ可能です。

    *を選択しているので 、 不可能だよ。 category_id以外のフィールド 、board_iddisplay およびorder インデックスの対象外であるため、検索する必要があります。



    1. DQLクエリで外部キーを返す

    2. MySql&PHP-文字列をDATETIMEに変換する方法

    3. 外部キーから複合キーへ

    4. phpを使用したmysqlクエリを使用したプログレスバー