码迷,mamicode.com
首页 > 其他好文 > 详细

索引原理

时间:2019-08-23 22:33:49      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:就是   主键索引   常用   mamicode   功能   唯一索引   img   需要   字段   

什么是索引?

索引在mysql中也叫做键,是存储引擎快速找到记录的一种数据结构。

目的:提高查询效率

本质:不断缩小获取数据的范围,找到最终结果。

索引数据结构

b+树应运而生(B+树是通过二叉查找树,再由平衡二叉树,B树演化而来)

一步步确定数据范围,层级越高,查询越慢,层级越低,查询越快。

叶子节点,是个磁盘块,存放所有真实数据。

在数据库中,B+树的高度一般在2~4层,这也就是说查找某一个键值的行记录时最多只需要2到4次IO,这倒不错。
技术图片

聚集索引和辅助索引

不管聚集,辅助,内部都是B+树形式。叶子节点,是个磁盘块,存放所有真实数据。

聚集索引

按照每张表的主键构造B+树,叶子节点存放整张表行记录数据。

好处:

  • 对主键的排序查找和范围查找速度很快,叶子节点的数据就是用户所要的数据。
  • 范围查询
  • 把主键id作为索引,ID占空间小,而且一定空间内能占的数量大。

辅助索引

表中除了聚集索引外,其他都是辅助索引。unique,index其他字段的索引都是辅助索引。

辅助索引存的是字段对应的记录的ID值。

覆盖索引

select的字段和查询字段一样叫覆盖索引。

mysql索引管理

功能

  • 索引的功能就是加速查找
  • 主键,unique唯一键也都是索引,这些索引除了加速之外,还有约束的功能。

mysql常用索引

  • 唯一索引:
    • 主键索引 primary key:加速查找+约束(不为空,不重复)
    • 唯一索引 unique:加速查找+约束(不重复)
  • 普通索引:index 加速查找
  • 联合索引
    • primary key(id, name):联合主键索引
    • unique(id, name):联合唯一索引
    • index(id, name):联合普通索引

索引原理

标签:就是   主键索引   常用   mamicode   功能   唯一索引   img   需要   字段   

原文地址:https://www.cnblogs.com/KbMan/p/11402610.html

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