MySQLの接頭辞インデックスは効果的にインデックスファイルのサイズを減らす、インデックスの速度を上げることができます。しかし、接頭辞指数もその欠点があります:MySQLはGROUP BYまたはORDER BYでプリフィックス索引を使用することはできません、また彼らは(インデックスカバー)カバー指標として用いることができます。
例の接頭辞インデックスの設立:
コードの表示
1 # 语法
2 ALTER TABLE table_name ADD KEY(column_name(prefix_length));
3
4 # 示例
5 ALTER TABLE city ADD KEY(cityname(7));
完全な列の選択を計算する一例。
コードの表示
1 # 全列选择性
2 SELECT COUNT(DISTINCT column_name) / COUNT(*) FROM table_name;
3
4 # 测试某一长度前缀的选择性
5 SELECT COUNT(DISTINCT LEFT(column_name, prefix_length)) / COUNT(*) FROM table_name;
*フルタイムに近い列の選択、選択の接頭辞、インデックス効果より良いです。
ます。https://my.oschina.net/weisenz/blog/200617で再現