查询:
SELECT A from table_name where A = 'a';
解释输出
1 SIMPLE table_name ref A_idx A_idx 1 const 40582635 **Using where; Using index**
问题
我有一个综合索引A_idx on (A,B,C)...
我希望输出只能使用索引,因为索引涵盖了整个查询。但我仍然得到一个使用的地方;使用索引 ...
有问题的列是具有以下定义的ENUM。
A enum('a','b','c') COLLATE utf8_unicode_ci NOT NULL,
答案 0 :(得分:1)
如explain output documentation的相应部分所述,“即使您正在为WHERE子句的所有部分使用索引,您也可以看到如果列可以为NULL,请使用where。”
更新:文档还说“如果Extra列也说使用where [除了使用索引],这意味着索引用于执行键值的查找。”