首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql索引解释

Mysql索引解释
EN

Stack Overflow用户
提问于 2015-04-04 14:19:00
回答 1查看 56关注 0票数 0

来自: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‘

这些基本上都一样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-04 15:02:17

这些基本上都一样吗?

简短的回答-是的,它们是一样的。

where子句的顺序并不重要,重要的是所使用的列是否与从左到右的索引列匹配。举一个例子:

索引:

代码语言:javascript
复制
(first name, last name, middle name)

Where子句(命令不重要):

first name, last name -被索引覆盖

last name, middle name -没有涵盖,因为不包含first name列。这是因为索引存储为B树,如果不提供第一列,就不会点击它。

http://use-the-index-luke.com/有很多关于索引的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29447474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档