对于这个特定的 sql 查询:
select firstName
from students
where lastName = "john"
在 (lastName, firstName) 上构建 B+ 树索引是否比在 (firstName, lastName) 上构建索引更快,为什么?
对于这个特定的 sql 查询:
select firstName
from students
where lastName = "john"
在 (lastName, firstName) 上构建 B+ 树索引是否比在 (firstName, lastName) 上构建索引更快,为什么?
INDEX name (lastName,FirstName)
会比INDEX name (FirstName,lastName)
它也可用于仅指定 lastName 值的查询,因为该列是索引的最左侧前缀
来自MySQL 手册
如果表有一个多列索引,优化器可以使用索引的任何最左边的前缀来查找行。例如,如果您在 (col1, col2, col3) 上有一个三列索引,则您在 (col1)、(col1, col2) 和 (col1, col2, col3) 上有索引搜索功能。