mysql索引做什么?


本文摘自PHP中文网,作者little bottle,侵删。

数据库中的索引类似大学图书馆建书目索引,可以提高数据检索的效率,降低数据库的IO成本。MySQL在300万条记录左右性能便会开始逐渐下降,所以当遇到大数据量时建立索引是非常有必要的。

MySQL官方对索引的定义为:索引是帮助MySQL高效获取数据的数据结构。

我们可以简单理解为:快速查找排好序的一种数据结构。

Mysql索引主要有两种结构:B+Tree索引和Hash索引。

我们平常所说的索引,如果没有特别指明,一般都是指B树结构组织的索引(B+Tree索引)。索引如上图所示。

最外层浅蓝色磁盘块1里有数据17、35(深蓝色)和指针P1、P2、P3(黄色)。P1指针表示小于17的磁盘块,P2是在17-35之间,P3指向大于35的磁盘块。真实数据存在于子叶节点也就是最底下的一层3、5、9、10、13......非叶子节点不存储真实的数据,只存储指引搜索方向的数据项,如17、35。

查找过程:例如搜索28数据项,首先加载磁盘块1到内存中,发生一次I/O,用二分查找确定在P2指针。接着发现28在26和30之间,通过P2指针的地址加载磁盘块3到内存,发生第二次I/O。用同样的方式找到磁盘块8,发生第三次I/O。

真实的情况是,上面3层的B+Tree可以表示上百万的数据,上百万的数据只发生了三次I/O而不是上百万次I/O,时间提升是巨大的。

以上就是mysql索引做什么?的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql如何创建和删除索引?

如何解决mysql 删表卡住的问题

mysql的四种事务隔离级别

mysql的information_schema 相关内容

mysqlslap mysql压力测试工具 简单教程

mysql数学函数简明总结

mysql proxy的意思是什么

mysql访问控制系统入门

phpstorm如何通过ssh连接mysql数据库

mysql如何查看字段是否为空

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...