码迷,mamicode.com
首页 > 其他好文 > 详细

回表,索引覆盖,最左匹配

时间:2020-04-23 10:32:28      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:alt   比较   节点   ike   情况下   存储   空间   一个   哈希索引   

数据库索引

回表

通俗的讲:如果索引的列在select所需获得列中就不需要回表(因为在mysql中索引是根据索引列的值进行排序的,所以索引节点中存在该列中的部分值),如果select所需获得列中有大量的非索引列,索引就需要到表中找到相应的列的信息,这就叫回表。

技术图片

索引覆盖

如果一个索引包含(或覆盖)所有需要查询的字段的值,称为‘覆盖索引’。即只需扫描索引而无须回表

覆盖索引必须要存储索引列的值,而哈希索引、空间索引和全文索引不存储索引列的值,所以mysql只能用B-tree索引做覆盖索引。

mysql不能在索引中执行LIke操作。mysql能在索引中做最左前缀匹配的like比较,但是如果是 通配符开头的like查询,存储引擎就 无法做比较匹配。这种情况下mysql只能提取数据行的值而不是索引值来做比较

最左匹配原则

技术图片

回表,索引覆盖,最左匹配

标签:alt   比较   节点   ike   情况下   存储   空间   一个   哈希索引   

原文地址:https://www.cnblogs.com/gaoyang666/p/12758947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!