如果给表定义了主键,那么表在磁盘上的存储结构就由整齐排列的结构转变成了树状结构,也就是「平衡树」结构,换句话说,就是整个表就变成了一个索引,这就是所谓的「聚集索引」。 这就是为什么一个表只能有一个主键, 一个表只能有一个「聚集索引」,因为主键的作用就是把「表」的数据格式转换成「索引(平衡树)」的格式放置。

  非聚集索引和聚集索引一样, 同样是采用平衡树作为索引的数据结构。假如给user表的name字段加上索引 , 那么索引就是由name字段中的值构成,在数据改变时, DBMS需要一直维护索引结构的正确性。如果给表中多个字段加上索引 , 那么就会出现多个独立的索引结构,每个索引(非聚集索引)互相之间不存在关联。

  非聚集索引和聚集索引的区别在于, 通过聚集索引可以查到需要查找的数据, 而通过非聚集索引可以查到记录对应的主键值 , 再使用主键的值通过聚集索引查找到需要的数据。不管以任何方式查询表, 最终都会利用主键通过聚集索引来定位到数据, 聚集索引(主键)是通往真实数据所在的唯一路径。

  但是也可以根据查询的结果建立复合索引或者多字段索引查询,为一个索引指定多个字段, 那么这个多个字段的内容都会被同步至索引之中,能加快查询的速度。另外,复合索引的属性顺序也会影响到查询的速度,具体较为优化的顺序要根据具体数据分布。

  参考链接:

  https://www.cnblogs.com/lykbk/p/wererereredfdf.html

  https://zhuanlan.zhihu.com/p/23624390?utm_source=wechat_session&utm_medium=social

转载于:https://www.cnblogs.com/LinsenLi/p/9596488.html

Innodb存储引擎——非聚集索引相关推荐

  1. mysql技术内幕innodb存储引擎——表索引算法和锁_(转)Mysql技术内幕InnoDB存储引擎-表索引算法和锁...

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  2. MySQL技术内幕InnoDB存储引擎(表索引算法和锁)

    表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...

  3. MySQL InnoDB存储引擎 聚集和非聚集索引

    B+树索引 索引的目的在于提高查询效率,可以类比字典,如果要查"mysql"这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql.如果没有索引,那么你可能 ...

  4. 【MySQL】MySQL的存储引擎和索引详解(聚集索引和非聚集索引)

    目录 一.MySQL存储引擎 1.1  Innodb引擎 1.2 MyISAM引擎 1.3 InNoDB与MyISAM异同 1.4 两种引擎的选择 二.索引(Index) 2.1 InnoDB存储引擎 ...

  5. Mysql (InnoDB引擎)聚集索引和辅助索引

    聚集索引: InnoDB存储引擎表是索引组织表,即按照主键的顺序存储数据.  聚集索引(clustered index)就是按照每张表的主键构造一棵B+树,树中的叶子节点存放着表中的行记录数据,因此, ...

  6. MySQL(InnoDB剖析):24---B+树索引(聚集索引与非聚集索引(辅助索引))、B+树索引的分裂

    一.B+树索引概述 B+树索引的本质就是B+树在数据库中的实现.但是B+索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的高度一般都在2~4层,也就是说查找某一键值的行记录最多只需要2~4 ...

  7. MySQL(InnoDB剖析):---B+树索引(聚集索引与非聚集索引(辅助索引))、B+树索引的分裂

    小伙伴们大家好!今天是大年三十,给大家拜个早年!在此小弟祝各位大哥们与家人团团圆圆,和和睦睦,新的一年身体健康,工作顺利! 一.B+树索引概述 B+树索引的本质就是B+树在数据库中的实现.但是B+索引 ...

  8. 彻底搞懂InnoDB存储引擎的索引模型

    在 InnoDB 中,表都是根据主键的顺序以索引的形式来存放的,该种存放方式的表称为索引组织表. InnoDB 使用了 B+ 树索引模型,所以数据都是存储在 B+ 树中的. 每一个索引在 InnoDB ...

  9. SQL Server 深入解析索引存储(非聚集索引)

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/索引体系结构/非聚集索引 概述 非聚集索引与聚集索引具有相同的 B 树结构,它们之间的显著差别在于以下两点: 基础表的数据行不按非 ...

最新文章

  1. Mysql 事务中Update 会锁表吗?
  2. lvm实现快速备份文件及数据库,lvm快照原理
  3. Android 在本地程序res/raw中读取数据操作
  4. 微信小程序中input和picker之间切换导致input无法失去焦点
  5. 新的Azure通信服务(ACS)如何实现WebRTC?
  6. Spark _17 _SparkShuffle、HashShuffleManager、SortShuffleManager
  7. Intellij IDEA中maven更新不下来pom中的jar包,reimport失效
  8. Spring Tool Suite 4 添加反编译插件
  9. VsCode开发Java SpringBoot遇到的问题
  10. 提高无线网络下载速度的秘诀
  11. .Net语言 APP开发平台——Smobiler学习日志:实现手机上常见的ListMenuView
  12. Tomcat项目get请求中参数乱码问题
  13. 卡顿、画面撕裂、延迟、晕眩为什么与帧率、刷新率有关
  14. [RPA之家]UiPath程序设计文档
  15. 泽林主办前沿IT技术分享峰会隆重召开,深度探讨人工智能、大数据与物联网 的未来发展趋势
  16. gulp在工作中的应用
  17. xss.haozi.me在线靶机挑战
  18. 北京智源大会 | AI + 医疗的下一个十年:从公共卫生预警到人类基因密码破解 道翰天琼认知智能api机器人接口。
  19. 慕课网风袖小程序 一一第一阶段
  20. Mybatis 之 二级缓存

热门文章

  1. Optical_Flow(2)
  2. ROS Kinectic 安装问题
  3. 用户空间使用内核头文件
  4. 草原深处的“那达慕”
  5. MATLAB数据分析3
  6. hi3531交叉编译环境arm-hisiv100nptl-linux搭建过程
  7. 华三路由交换配置命令_华三路由器交换机配置命令
  8. 神舟笔记本电源管理软件_笔记本电脑是一直插着电源好,还是拔了电源好?
  9. python弹球游戏绑定鼠标事件_用python和pygame游戏编程入门-弹球[鼠标控制]
  10. java bitset用途_BitSet的用法