没有区别,因为只要包含列,优化器就会处理顺序。
WHERE by_id = '324' AND origin = 'Australia' AND genre = 'rock'
| 身份证 | 选择类型 | 表 | 类型 | 可能键 | 关键 | KEY_LEN | 参考 | 行 | 额外 |
-------------------------------------------------- -------------------------------------------------- ---------------
| 1 | 简单 | 艺术家 | 常量 | 初级 | 初级 | 80 | 常量,常量,常量 | 1 | 使用索引 |
WHERE by_id = '324' AND genre = 'rock' AND origin = 'Australia'
| 身份证 | 选择类型 | 表 | 类型 | 可能键 | 关键 | KEY_LEN | 参考 | 行 | 额外 |
-------------------------------------------------- -------------------------------------------------- ---------------
| 1 | 简单 | 艺术家 | 常量 | 初级 | 初级 | 80 | 常量,常量,常量 | 1 | 使用索引 |
如果您碰巧遗漏了by_id
,则不会使用索引(索引从左到右工作)
WHERE genre = 'rock'
| 身份证 | 选择类型 | 表 | 类型 | 可能键 | 关键 | KEY_LEN | 参考 | 行 | 额外 |
-------------------------------------------------- -------------------------------------------------- -----------------
| 1 | 简单 | 艺术家 | 索引 | (空) | 初级 | 80 | (空) | 1 | 使用哪里;使用索引 |
WHERE origin='Australia' AND genre = 'rock'
| 身份证 | 选择类型 | 表 | 类型 | 可能键 | 关键 | KEY_LEN | 参考 | 行 | 额外 |
-------------------------------------------------- -------------------------------------------------- -----------------
| 1 | 简单 | 艺术家 | 索引 | (空) | 初级 | 80 | (空) | 1 | 使用哪里;使用索引 |