百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 创立索引可以加速表中数据查询的速度吗
分享文章到:

创立索引可以加速表中数据查询的速度吗

发布时间:09/01 来源:未知 浏览: 关键词:
第一清楚为什么索引会增添速度,DB在施行一条Sql语句的时候,默许的方式是按照搜索前提停止全表扫描,碰到匹配前提的就参加搜索结果汇合。

假如我们对某一字段增添索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少遍历匹配的行数,所以能明显增添查询的速度。(引荐学习:MySQL视频教程)

增加索引的话,第一去索引列表中查询,而我们的索引列表是B类树的数据构造,查询的时间复杂度为O(log2N),定位到特定值得行就会非常快,所以其查询速度就会非常快。

为什么说B+-tree比B 树更适合实际利用中操纵系统的文件索引和数据库索引?

1) B+-tree的磁盘读写代价更低

B+-tree的内部结点并没有指向关键字详细信息的指针。因此其内部结点相对B 树更小。假如把所有统一内部结点的关键字存置在统一盘块中,那么盘块所能容纳的关键字数目也越多。一次性读入内存中的需要查寻的关键字也就越多。相对来说IO读写次数也就落低了。

举个例子,假设磁盘中的一个盘块容纳16bytes,而一个关键字2bytes,一个关键字详细信息指针2bytes。一棵9阶B-tree(一个结点最多8个关键字)的内部结点需要2个盘快。而B+ 树内部结点只需要1个盘快。当需要把内部结点读入内存中的时候,B 树就比B+ 树多一次盘块查寻时间(在磁盘中就是盘片扭转的时间)。

2) B+-tree的查询效力愈加不乱

由于非终结点并不是终究指向文件内容的结点,而只是叶子结点中关键字的索引。所以任何关键字的查寻必需走一条从根结点到叶子结点的路。所有关键字查询的途径长度雷同,致使每一个数据的查询效力相当。

索引

使用索引可快速拜访数据库表中的特定信息。索引是对数据库表中一列或多列的值停止排序的一种构造,例如 employee 表的姓(lname)列。假如要按姓查寻特定职员,与必需搜索表中的所有行比拟,索引会帮忙您更快地获得该信息。

留意:并非所有的数据库都以雷同的方式使用索引。

作为通用规则,只要当经常查询索引列中的数据时,才需要在表上创立索引。索引占用磁盘空间,并且落低增加、删除和更新行的速度。在多数状况下,索援用于数据检索的速度优势大大超越它的。

更多MySQL相关技术文章,请拜访MySQL教程栏目停止学习!

以上就是创立索引可以加快表中数据查询的速度吗的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

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

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

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

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板