Mysql 什么是聚集索引和非聚集索引?

  • 1. 聚集索引
    • 1.1 为什么建议使用连续id?
    • 1.2 为什么一个表只有一个聚集索引?
  • 2. 非聚集索引

1. 聚集索引

聚集索引就是基于主键创建的索引,在InnoDB的引擎里,一张表的数据对应的物理文件本身就是按照B+Tree来组织的,聚集索引就是按照每张表的增加来构建的这样一个B+树。叶子节点会存储这个表里的每一行数据记录。
聚集索引并不是仅仅是一种索引类型,还代表的一种数据存储方式。并且表必须有一个主键,如果没有主键InnoDB会默认选择一个隐藏列,作为主键索引来存储表的数据,一般情况是建议自增id作为主键。有连续性的在磁盘下入性能和检索性能上都会很高。如果使用uuid这种随机id的话,频繁插入会导致磁盘随机io,从而性能下降。并且一个表只能存在一个聚集索引,如果有多个就会有多套副本,浪费磁盘空间,并且当操作的时候会让数据维护更困难。

1.1 为什么建议使用连续id?

有连续性的在磁盘写入性能检索性能上都会很高。如果使用uuid这种随机id的话,频繁插入会导致磁盘随机io,从而性能下降。

1.2 为什么一个表只有一个聚集索引?

如果有多个就会有多套副本,浪费磁盘空间,并且当操作的时候会让数据维护更困难。

2. 非聚集索引

除了主键索引以外的索引都叫做非聚集索引,也叫做二级索引。非聚集索引子节点存放的不是实际数据,而是指向实际数据的指针,一个表中可以拥有多个非聚集索引。

如有错误欢迎指正

Mysql 什么是聚集索引和非聚集索引?相关推荐

  1. 一句话说清聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM

    聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM经常遇到有人向我咨询这个问题,其实呢,网上帖子很多,也说的都对,但是呢,看客可不一定是真的理解了.所以今天在这里用最简短的语言让你明白这些 ...

  2. mysql非聚集索引区间查询_mysql的聚集索引和非聚集索引,回表查询,索引覆盖,最左前缀原则略解...

    什么是聚集索引和非聚集索引 我们知道 Mysql 底层是用 B+ 树来存储索引的,且数据都存在叶子节点.对于 InnoDB 来说,它的主键索引和行记录是存储在一起的,因此叫做聚集索引(clustere ...

  3. mysql创建非聚集索引_一文看懂聚集索引和非聚集索引的区别

    一.深入浅出理解索引结构 实际上,可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclu ...

  4. mysql创建非聚集索引_聚集索引和非聚集索引的区别

    作者:riemann riemann.blog.csdn.net/article/details/90324846 一.深入浅出理解索引结构 实际上,可以把索引理解为一种特殊的目录.微软的SQL SE ...

  5. mysql聚集索引 myisam_一句话说清聚集索引和非聚集索引以及MySQL的InnoDB和MyISAM

    版权声明:本文为博主原创文章,未经博主允许不得转载.https://blog.csdn.net/21aspnet/article/details/89303988 聚集索引和非聚集索引以及MySQL的 ...

  6. mysql创建非聚集索引_一文让你明白聚集索引和非聚集索引?

    我们知道Mysql底层使用的B+树来存储索引的,而且数据都存在叶子节点上.对于innodb来说,它的主键索引和行记录是存储在一起的,因此叫做聚集索引. ps:MyISAM的行记录是单独存储的,不和索引 ...

  7. mysql 堆表_Mysql聚集索引和非聚集索引(堆组织表和索引组织表)

    Mysql聚集索引和非聚集索引(堆组织表和索引组织表) 1.堆组织表(HOT)和索引组织表(IOT)有什么区别? myisam使用的堆组织表(Heap Organize Table, HOT),没有聚 ...

  8. SQL Server中的联合主键、聚集索引、非聚集索引、mysql 联合索引

    我们都知道在一个表中当需要2列以上才能确定记录的唯一性的时候,就需要用到联合主键,当建立联合主键以后,在查询数据的时候性能就会有很大的提升,不过并不是对联合主键的任何列单独查询的时候性能都会提升,但我 ...

  9. mysql 重复率高字段 索引,为什么重复值高的字段不能建索引(+聚集索引和非聚集索引)...

    ?一.原因: -?非聚簇索引存储了对主键的引用,如果?select?字段不在非聚簇索引内,就需要跳到主键索引. -?如果非聚簇索引值重复率高,那么查询时就会大量出现上图中从右边跳到左边的情况,导致整个 ...

  10. mysql聚集索引和非聚集索引的区别_聚集索引与非聚集索引的总结

    一.索引简介 众所周知,索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构,SQL的主流索引结构有B+树以及Hash结构,聚集索引以及非聚集索引用的是B+树索引.这篇文章会总结SQL Se ...

最新文章

  1. wpf 绑定数据无法更新ui控件可能存在的问题
  2. SpringBoot巧用 @Async 提升API接口并发能力
  3. LeetCode Remove Element
  4. LetCode: 5. 最长回文子串
  5. jsch设置代理_Java使用JSch组件实现SSH协议代理服务
  6. yolov3安卓实现_重磅!MobileNet-YOLOv3来了(含三种框架开源代码)
  7. 什么是ActiveMQ?
  8. python矩阵左除_matlab学习笔记
  9. python 32bit数据结构_python实现bitmap数据结构详解
  10. iostat -x命令诊断
  11. 机器学习速成课程 | 练习 | Google Development——编程练习:特征组合
  12. 透析 | 卷积神经网络CNN究竟是怎样一步一步工作的?
  13. mysql中生成列与JSON类型的索引
  14. PHP error_reporting() 错误控制函数功能详解
  15. 迭代器,生成器,三元运算,列表推导式
  16. Roadrunner安装与简单使用
  17. defy+me525+android2.3.6官方镜像包,V大DEFY/DEFY+ ME525 ME525+ 2.3.6巅峰优化版0.86(红头)...
  18. 计算机原理(3)主板上的CPU,存储器,南桥北桥等的总结
  19. Python入门(二) part1 列表
  20. SWUST OJ#1052 输出利用先序遍历创建的二叉树中的指定结点的双亲结点

热门文章

  1. word文件做一半未响应_Word经常出现未响应怎么办?
  2. jsencrypt php,js加密php解密(一)
  3. Gateway网关- 微服务(十四)
  4. python柱状图加百分比_python matplotlib 为柱状图添加百分比
  5. 计算机结构体系:系统CPI计算例题(1.5)
  6. 传华为公司又一名技术部员工乔向英猝死
  7. 计算机无法安装cad怎么办,电脑安装AutoCAD提示未正常卸载无法安装如何解决
  8. CVPR2020|3D目标检测算法推荐论文源码大盘点
  9. win7新建ios开发环境
  10. 计算机键盘没有fn,电脑上没有FN键怎么打开小键盘