前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql聚集索引和非聚集索引

Mysql聚集索引和非聚集索引

作者头像
MySQL轻松学
发布2018-03-09 13:55:05
2.3K0
发布2018-03-09 13:55:05
举报
文章被收录于专栏: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 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档