美文网首页
5.数据库索引

5.数据库索引

作者: yywfy的昵称 | 来源:发表于2019-03-13 10:15 被阅读0次

回表:回到主键索引树搜索的过程。

如何优化索引避免回表过程?

1. 覆盖索引:

mysql> create table T (

ID int primary key,

k int NOT NULL DEFAULT 0,

s varchar(16) NOT NULL DEFAULT '',

index k(k))

engine=InnoDB;

insert into T values(100,1, 'aa'),(200,2,'bb'),(300,3,'cc'),(500,5,'ee'),(600,6,'ff'),(700,7,'gg');

查询语句select * from T where k between 3 and 5,因为需要查询所有字段信息,所以需要回表查询。但是查询语句

select ID from T where k between 3 and 5,只需要查询ID的值,而k索引树上已经包含了主键ID的值,因此可以直接提供查询结果,不需要回表,这种情况叫做“覆盖索引”。

覆盖索引可以减少树的搜索次数,显著提升查询性能,所以使用覆盖索引是一个常用的性能优化手段。

2. 最左前缀原则:

B+树这种索引结构,可以利用索引的“最左前缀”来定位记录。

(name, age)索引示意图

3. 索引下推

Mysql5.6引入了索引下推优化(index condition pushdown),可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表次数。

索引下推执行过程

在满足语句需求的情况下, 尽量少地访问资源是数据库设计的重要原则之一,在使用数据库的时候,尤其是在设计表结构时,也要以减少资源消耗作为目的。

相关文章

  • 5.数据库索引

    回表:回到主键索引树搜索的过程。 如何优化索引避免回表过程? 1. 覆盖索引: mysql> create tab...

  • 2018-10-20计划及总结

    每日计划 1.背单词 2.看书 3.练习数据库语法 4.看数据库的索引 5.数据库三大范式 总结 上午校外基地组织...

  • 数据库规范参考

    一.数据库对象范围限定1.表2.约束[主键/外键]3.索引4.标量函数5.存储过程6.视图(对外) 二.数据库对象...

  • 数据库索引记录

    本文用来记录数据库索引相关内容; 1】数据库索引分为单列索引,组合索引,全文索引,空间索引 2】单列索引:只有一个...

  • 索引,序列,视图

    1、数据库索引索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果...

  • Sql索引优化—转载

    数据库索引使用方式 使用索引是提高数据库查询效率的主要方式,下面从索引结构,索引类型,索引操作,命中索引几个方面来...

  • 数据库 - 索引

    索引 索引 索引的建立对于数据库的高效运行是很重要的。索引可以大大提高数据库的检索速度。 索引分单列索引,组合索引...

  • [Mysql]Mysql索引实现原理及相关优化策略

    数据库索引 数据库索引是什么? A database index is a data structure that...

  • 数据库索引定义和类型

    数据库索引类型及实现方式 1、索引定义 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引是对数据库表...

  • 面试题1

    数据库: 数据库优化 1.符合三范式2.建立索引,单表不超过五个3.sql优化4.加缓存5.历史数据迁移,把长期不...

网友评论

      本文标题:5.数据库索引

      本文链接:https://www.haomeiwen.com/subject/ijwbpqtx.html