来自:https://dev.mysql.com/doc/refman/5.5/en/multiple-column-indexes.html
MySQL可以将多列索引用于测试索引中所有列的查询,也可以使用只测试第一列、前两列、前三列等的查询。如果在索引定义中按正确的顺序指定列,那么单个复合索引可以加快同一表上的几种查询。
列的使用顺序重要吗?
例如: id,名,姓,中间名,地址
索引(名、姓、中间名)
指数:
当执行查询时,哪里的顺序重要吗?
例子:
其中first_name = 'Chris‘和last_name = 'Smith’
VS
其中姓氏=‘Smith’和first_name = 'Chris‘
这些基本上都一样吗?
发布于 2015-04-04 15:02:17
这些基本上都一样吗?
简短的回答-是的,它们是一样的。
where子句的顺序并不重要,重要的是所使用的列是否与从左到右的索引列匹配。举一个例子:
索引:
(first name, last name, middle name)Where子句(命令不重要):
first name, last name -被索引覆盖
last name, middle name -没有涵盖,因为不包含first name列。这是因为索引存储为B树,如果不提供第一列,就不会点击它。
http://use-the-index-luke.com/有很多关于索引的信息。
https://stackoverflow.com/questions/29447474
复制相似问题