-1
did
、uid
およびpid
の列を持つmy_table
という名前のテーブルがあります。このテーブルの インデックスは、次のとおりです。MySQLはどのようにインデックスを選択しますか?
(uid, did, pid)
- ユニーク(did)
(did, pid)
今、私はこのようになりますクエリがあります。これは、my_tableから
SELECT *をWHERE did = 1234
このクエリーは〜12秒で〜150k行に一致します。最後のインデックスを削除すると1秒以内に終了します
誰かが何が起こっているのか説明できますか?
エッジケースのように聞こえます。 Plsは分析表を作成します。結果がまだ遅い場合、フルテーブル構造と説明の結果が表示され、テーブル – e4c5
の行数の合計も表示されます** Proヒント**:回避するには 'SELECT *'。代わりに、必要な列のリストを指定します。クエリプランナは、そのリストを利用してクエリを最適化することがあります。 –