2

これがどのように処理されるのか興味があります。最初の10文字にインデックスが付けられたという名前のvarchar(255)列があります。title

タイトル順に並べ替えるMySQLクエリを作成する場合、そのインデックスのみを利用しますか、それとも無視しますか、それともそのインデックスを使用するためにコマンドを発行する必要がありますか?

たとえば、次のtitle名前のアイテムが2つあるとします。

This is the same thing
This is the same thing only slightly different

最初の10文字は同じですが、MySQLはそれをどのように処理しますか?最初の10文字までのプレフィックスインデックスを使用し、その後は行ごとのインデックスを使用しますか?

4

1 に答える 1

1

さて、次のように言われています。

インデックスのすべての未使用部分とすべての追加の ORDER BY 列が WHERE 句の定数である限り、ORDER BY がインデックスと正確に一致しない場合でも、インデックスを使用できます。

ただし、このクエリを EXPLAIN でチェックして、オプティマイザが選択するパスを確認することを強くお勧めします。

于 2012-07-06T23:24:13.813 に答える