当前位置:首页 > MySQL教程 > 正文内容

竖立索引能够加速表中数据查询的速率吗【MySQL教程】,索引

搜教程4年前 (2019-12-01)MySQL教程193
起首邃晓为何索引会增添速率,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教程栏目举行进修!

以上就是竖立索引能够加速表中数据查询的速率吗的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/16220.html

标签: 索引
分享给朋友:

“竖立索引能够加速表中数据查询的速率吗【MySQL教程】,索引” 的相关文章

数据库jdbc封装【MySQL教程】,jdbc,数据库,封装

经由几天的勤奋终究搞好了,这个类能够不必管数据库字段,不必写dao类,直接map增添,增添删除和修正,jdbc链接,分享给人人,用的话记得加上衔接池,尊敬原创,转载请说明 package jdbc;import java.sql.Connection;import java.sql.Drive...

MySQL适配器之PyMySQL的细致引见【MySQL教程】,PyMySQL,MySQL,适配器

这篇文章主要为人人细致引见了MySQL适配器PyMySQL的相干材料,具有肯定的参考价值,感兴趣的小伙伴们能够参考一下 本文我们为人人引见 Python3 运用 PyMySQL 衔接数据库,并完成简朴的增编削查。 什么是 PyMySQL? PyMySQL 是在 Python3.x 版本顶用...

Centos7怎样应用yum装置Mysql5.7.19的具体方法【MySQL教程】,Mysql5.7.19,Centos7,安装

Centos7怎样应用yum装置Mysql5.7.19的具体方法【MySQL教程】,Mysql5.7.19,Centos7,安装

本篇文章重要引见了Centos7运用yum装置Mysql5.7.19的细致步骤,小编以为挺不错的,如今分享给人人,也给人人做个参考。一同追随小编过来看看吧 Centos7的yum源中默许是没有mysql,由于如今已用mariaDB替代mysql了。 起首我们下载mysql的repo源,我们能...

mysql列column常用命令的运用总结【MySQL教程】,column,mysql,使用

mysql列column常用命令的运用总结【MySQL教程】,column,mysql,使用

本文主要内容mysql 列常用命令: 检察表的列的属性 describe table_name column_name show all column property检察一切列的属性 修正表的列属性 alter table <表名> modify <列> &...

CREATE DATABASE语句诠释【MySQL教程】,DATABASE,CREATE,解释

本文为mariadb官方手册:CREATE DATABASE的译文。 语法 CREATE [OR REPLACE] {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [create_specification] ... create_spec...

mysql自动猎取时候日期的要领【MySQL教程】,mysql,日期,时间

mysql自动猎取时候日期的要领【MySQL教程】,mysql,日期,时间

完成体式格局: 1、将字段范例设为 TIMESTAMP 2、将默许值设为 CURRENT_TIMESTAMP 举例运用: 1、MySQL 剧本完成用例 --增加CreateTime 设置默许时候 CURRENT_TIMESTAMP ALTER TABLE `table_...