是的,至少一种情况要慢得多。如果仅定义以下索引:
ALTER TABLE ... ADD INDEX (a, b);
…那么查询SELECT * FROM ... WHERE B = 1;
将不使用该索引。
使用复合键创建索引时,键的列顺序很重要。建议尝试对键中的列进行排序,以增强选择性,将选择性最高的列放在键的最左侧。如果您不这样做,而将非选择列作为键的第一部分,则可能会根本不使用索引。
多个和单个索引
是的,至少一种情况要慢得多。如果仅定义以下索引:
ALTER TABLE ... ADD INDEX (a, b);
…那么查询SELECT * FROM ... WHERE B = 1;
将不使用该索引。
使用复合键创建索引时,键的列顺序很重要。建议尝试对键中的列进行排序,以增强选择性,将选择性最高的列放在键的最左侧。如果您不这样做,而将非选择列作为键的第一部分,则可能会根本不使用索引。