请你说说MySQL索引,以及它们的好处和坏处

Posted top啦它

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请你说说MySQL索引,以及它们的好处和坏处相关的知识,希望对你有一定的参考价值。

1、什么是索引:首先、索引是一种组织数据的有序的数据结构。
2、mysql支持的索引有哪些:hash、B+Tree、红黑树。。。。。。
3、这些索引的优缺点:hash索引能够更快的支持单点查询、In操作、但是因为数据的分布是随机的,所以在进行一些逻辑操作,比如group by、order by、排序等操作时它的效率很低很低,并且hash索引还存在hash冲突问题,进一步降低了hash索引的效率。红黑树是一种二叉平衡树,它可以将胡数据顺序的组织在节点上,但是相邻的节点仅仅是在逻辑上保证了顺序,在持久化中可能并不会进行顺序存储,因为红黑树为了保证平衡需要进行左右旋,更何况在数据量较大的情况下红黑树的高度很高,在存取的时候需要多次进行磁盘IO,而磁盘IO的性能比内存IO的性能低了上万的数量级,再加上不能很好的利用系统的局部性原理(磁盘的顺序读取速度很快,因为在磁盘中读取数据需要将磁头和磁盘进行移动,移动到正确的扇区,然后进行读数据,而再度数据的时候一般会读取一页数据(大概4K,),他会读取一个数据左右相邻的数据)。B+树则是分配一页大小的大节点,然后再大节点上分配小节点和间隙节点,而且不同于红黑树,B+树再小节点中仅仅存储索引字段,而数据存在于叶子节点中,叶子节点还通过双向指针相互指向,使得在进行函数计算时也可以很好的利用到索引。并且再增加删除节点时可能会调整节点的位置,对节点进行迁移,也就是对页进行合并等等,可以更好地利用到局部性原理。

以上是关于请你说说MySQL索引,以及它们的好处和坏处的主要内容,如果未能解决你的问题,请参考以下文章

请你说说MySQL索引,以及它们的好处和坏处

MySQL——关于索引的总结

MySQL——关于索引的总结

MySQL 索引机制以及调优

MySQL 索引机制以及调优

mysql创建和删除唯一索引(unique key)