码迷,mamicode.com
首页 > 数据库 > 详细

[DB] MySQL 索引分类

时间:2020-05-23 00:12:43      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:根据   text   alt   最快   ref   href   src   行数据   html   

按数据结构

  • B树索引
    • 数据位于叶子节点,到任何一个叶子节点的距离相同,一般不超过3-4层
    • B+树索引:每个叶子节点除了数据还存放前后叶子节点的指针,方便快速检索,是InnoDB采用的索引结构
  • Hash索引
  • Fulltext索引
  • R树索引

按实现方式

  • 聚集索引(聚簇索引)
    • 叶子节点存放行数据
    • 将索引行直接存储在索引中
    • 优点:数据访问快
    • 缺点:
      • 插入速度严重依赖插入顺序,按主键顺序插入最快,否则会出现页分裂影响性能
      • 更新主键代价很高
      • 二级索引访问需要两次索引查找(主键-->行数据)
  • 非聚集索引(非聚簇索引)
    • 在聚簇索引之上创建的索引
    • 叶子节点存储主键值,或指向数据行的指针
    • 访问数据需要二次查找,第一次找到主键值,第二次根据主键值找到行数据

按对应键

  • 主键索引
    • InnoDB下是聚簇索引,MyISAM下是非聚簇索引
    • 叶子节点只能按一棵B+树排序,故一张表只能有一个
  • 辅助键索引(二级索引)
    • 不影响聚簇索引中数据的组织,一张表可以有多个

按存储引擎

  • InnoDB
    • 主索引:保存数据,key是表的主键
    • 辅助索引:记录主键的值而不是地址
    • 实现方式:聚集索引(数据和索引在一起)
  • MyISAM
    • 主索引:索引和数据分离,索引叶子节点仅保存数据地址
    • 辅助索引:和主索引无区别
    • 实现方式:非聚集索引(数据和索引不在一起)

技术图片

技术图片

参考

https://www.cnblogs.com/jiawen010/p/11805241.html

https://www.jianshu.com/p/fa8192853184

[DB] MySQL 索引分类

标签:根据   text   alt   最快   ref   href   src   行数据   html   

原文地址:https://www.cnblogs.com/cxc1357/p/12940326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!