2.3MySQL索引

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了2.3MySQL索引脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

索引介绍

索引:是排序的快速查找的特殊数据结构,定义作为查找条件的字段上,又称为键Key,索引通过存储引擎实现

索引的作用相当于书的目录,可根据目录中的页码快速找到

索引是为了加速对表中的数据行的检索而创建的一种分散存储的数据结构。

优点VS缺点

优点:

索引可以降低服务需要扫描的数量,减少了IO次数

索引可以帮助服务器避免排除和使用临时表

索引可以帮助将随机IO转为顺序IO

缺点:

占用额外空间,影响插入速度

数据发生变化必定要更新索引,更新索引必定要带来io操作

索引类型

二叉树

2.3MySQL索引

 

 红黑树

2.3MySQL索引

 

 B-tree索引

2.3MySQL索引

 

 B+Tree索引

2.3MySQL索引

 

 

MySQL为什么最终要去选择B+Tree?

B+Tree是B TREE的变种,B TREE能解决的问题,B+TREE也能够解决(降低树的高度,增大节点存储数据量)

B+Tree扫库和扫表能力更强。如果我们要根据索引去进行数据表的扫描,对B TREE进行扫描,需要把整棵树遍历一遍,而B+TREE只需要遍历他的所有叶子节点即可(叶子节点之间有引用)。

B+TREE磁盘读写能力更强。他的根节点和支节点不保存数据区,所以根节点和支节点同样大小的情况下,保存的关键字要比B TREE要多。而叶子节点不保存子节点引用,能用于保存更多的关键字和数据。所以,B+TREE读写一次磁盘加载的关键字比B TREE更多。

B+Tree排序能力更强。上面的图中可以看出,B+Tree天然具有排序功能。

B+Tree查询性能稳定。B+Tree数据只保存在叶子节点,每次查询数据,查询IO次数一定是稳定的。当然这个每个人的理解都不同,因为在B TREE如果根节点命中直接返回,确实效率更高。

Hash算法

哈希索引基于哈希表实现,只有精确匹配索引所有列的查询才有效。

对于每一行数据,存储引擎都会对所有的索引列计算一个哈希码,哈希码是一个较小的值,并且不同键值的行计算出来的哈希码也不一样。

哈希索引将所有的哈希码存储在索引中,同时在哈希表中保存只想每个数据行的指针。

脚本宝典总结

以上是脚本宝典为你收集整理的2.3MySQL索引全部内容,希望文章能够帮你解决2.3MySQL索引所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。