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

mysql的索引的学习

时间:2019-10-22 01:00:40      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:height   http   唯一索引   image   操作   博客   size   width   idt   

优秀相关博客地址

1. https://www.cnblogs.com/liqiangchn/p/9060521.html 通俗易懂

一、索引的分类

1:从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。

2:从应用层次来分:普通索引,唯一索引,复合索引

3:根据中数据的物理顺序与键值的逻辑(索引)顺序关系:聚集索引,非聚集索引。

? 1中所描述的是索引存储时保存的形式,2是索引使用过程中进行的分类,两者是不同层次上的划分。

不过平时讲的索引类型一般是指在应用层次的划分。

二、B、B+树

B+树是B-树的优化,B+树是非叶子节点做索引项,叶子节点做数据信息项,并且叶子节点每M个也就是一个数据页之间是使用指针进行关联,也就是B+树只需要遍历叶子节点就可以实现整个树的遍历,可以更加好地使用范围查询。

B+树增加和删除是符合B树的特性,当子孩子项大于M时,数据就会分裂,中间的节点就会充当父节点。

基于主键进行创建索引,可以减少当增加和删除时候产生的数据分裂的数据更新的操作。

技术图片技术图片

 

 

 

 

 

技术图片

 

 

 

三、聚集索引以及辅组索引

mysql 是使用B+树作为数据结构索引,并且再数据的物理量顺序和索引的顺序使用了聚集索引,也就是叶子节点是存储数据信息,而辅组索引是存储聚集索引的索引项,找到索引项之后又要进行二次索引再一次进行查询

技术图片

 

 

四、顺序主键的策略:

  在InnoDB表中使用自增主键是既简单性能又高的策略,这样可以保证数据按顺序写入。最好避免随机的聚集索引,从性能的角度考虑,使用UUID来作为聚集索引是很糟糕的,这样不仅插入行花费的时间长,而且索引占用的空间也更大。

 五、什么样的列可以设置索引

六、执行查询时什么情况下不用使用到索引

 

mysql的索引的学习

标签:height   http   唯一索引   image   操作   博客   size   width   idt   

原文地址:https://www.cnblogs.com/fc520/p/11717365.html

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