2

对于这个特定的 sql 查询:

select firstName
from students
where lastName = "john"

在 (lastName, firstName) 上构建 B+ 树索引是否比在 (firstName, lastName) 上构建索引更快,为什么?

4

1 回答 1

1

INDEX name (lastName,FirstName)会比INDEX name (FirstName,lastName)

它也可用于仅指定 lastName 值的查询,因为该列是索引的最左侧前缀

来自MySQL 手册

如果表有一个多列索引,优化器可以使用索引的任何最左边的前缀来查找行。例如,如果您在 (col1, col2, col3) 上有一个三列索引,则您在 (col1)、(col1, col2) 和 (col1, col2, col3) 上有索引搜索功能。

于 2013-04-04T05:32:21.317 回答