首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Mysql聚集索引和非聚集索引

Mysql聚集索引和非聚集索引

作者头像
MySQL轻松学
发布2018-03-09 13:55:05
发布2018-03-09 13:55:05
2.6K0
举报
文章被收录于专栏:MYSQL轻松学MYSQL轻松学

首先要明确一个概念,在聚集索引的世界里索引就是数据,在最后的叶子索引键保存着对应的数据行。

举个例子:

表TestNonclusteredIndex

代码语言:javascript
复制
ID   col1
1    4
2    5
3    6
4    7

其中ID列上有聚集索引,col1上是非聚集索引

执行下面语句:

代码语言:javascript
复制
select *
from TestNonclusteredIndex
where ID = 3;

SQL知道ID是聚集索引,因此就去聚集索引里去查找(查找和扫描是有区别的),当找到对应的键值的时候里面保存的是 "3 6"这条记录。

如果执行这条查询语句:

代码语言:javascript
复制
select *
from TestNonclusteredIndex
where col1 = 6

SQL知道col1上有非聚集索引,去索引里查找,找到的是6的非聚集索引键值和这条记录的聚集索引键值,因为没有数据(3 6),SQL就用这个聚集索引查找,就上面的例子一样就找到(3 6)这条数据;

其次,你要知道聚集索引是顺序的,到最后的数据页的时候,你知道第一条记录聚集索引是1难道聚集索引为2的记录不是它下一条,那么聚集索引为N的记录不是1之后的N-1条?我相信师弟不会一条一条的读进去分析的,哈哈...

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MYSQL轻松学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档