ソート時にインデックスを利用してソートを行うことができれば、ソート速度が大幅に向上しますが、インデックスを利用してソートを行うには、以下の2点を満たす必要があります。
1. ORDER BY 句の後の列の順序は、結合インデックスの列の順序と一致している必要があり、すべての並べ替え列の並べ替え方向 (順方向/逆順) も一致している必要があります。
## 2. クエリされたフィールド値はインデックス列に含まれており、カバーインデックスを満たす必要があります。
推奨コース:
user_test
テーブル<pre class="brush:php;toolbar:false">ALTER TABLE user_test ADD INDEX index_user(user_name , city , age);</pre> に結合インデックスを作成します
SELECT user_name, city, age FROM user_test ORDER BY user_name;
SELECT user_name, city, age FROM user_test ORDER BY user_name, city;
SELECT user_name, city, age FROM user_test ORDER BY user_name DESC, city DESC;
SELECT user_name, city, age FROM user_test WHERE user_name = 'feinik' ORDER BY city;
注: 4 番目の SQL ステートメントは少し特殊で、where クエリ条件がインデックス列の最初の列であり、が定数条件の場合、インデックスも使用できます。
インデックス列に性別が含まれていません
SELECT user_name, city, age FROM user_test ORDER BY user_name, sex;
ソート列の方向が不一致です
SELECT user_name, city, age FROM user_test ORDER BY user_name ASC, city DESC;
必要なクエリフィールド列性別はインデックス列
SELECT user_name, city, age, sex FROM user_test ORDER BY user_name;
に含まれていません。クエリ条件
user_name は範囲クエリであるため、インデックスの他の列は使用できません。 うわー
以上がmysqlでインデックスを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。