ITKeyword,专注技术干货聚合推荐

注册 | 登录

mysql 全表扫描、全索引扫描、索引覆盖(覆盖索引)

wangjun5159 分享于 2016-01-15

推荐:MYSQL 降序索引和减轻索引扫描

原文作者: Peter Zaitsev 原文来源: http://www.mysqlperformanceblog.com/2006/05/09/descending-indexing-and-loose-index-scan 译者:叶金荣(Email:),转

2019阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
领取地址https://promotion.aliyun.com/ntms/yunparter/invite.html

full index scan:全索引扫描,查询时,遍历索引树来获取数据行。如果数据不是密集的会产生随机IO
在执行计划中是Type列,index


full table scan:通过读物理表获取数据,顺序读磁盘上的文件。这种情况会顺序读磁盘上的文件。
在执行计划中是Type列,all


covering index:覆盖索引,如果where条件的列和返回的数据在一个索引中,那么不需要回查表,那么就叫覆盖索引。
在执行计划中是extra那一列,using index


full index scan  vs full table scan
全索引扫描并不一定就比全表扫描好,取决于数据存储位置。
如果数据在内存,那么这两种没有太大区别。
如果数据在磁盘,全表扫描比全索引扫描要好,这是因为,全表扫描是顺序读数据,sequential read,是顺序IO

而全索引扫描,可能会产生随机读(reandom read),随机IO,显然,顺序读要比随机读快很多。

推荐:分析Oracle索引扫描四大类

学习Oracle时,你可能会遇到Oracle索引扫描问题,这里将介绍Oracle索引扫描问题的解决方法,在这里拿出来和大家分享一下。根据索引的类型与where限制条件的不同


查看执行计划的样例






推荐:理解MySQL数据库覆盖索引

话说有这么一个表: CREATE TABLE `user_group` (   `id` int(11) NOT NULL auto_increment,   `uid` int(11) NOT NULL,   `group_id` int(11) NOT NULL,   PRIM

full index scan:全索引扫描,查询时,遍历索引树来获取数据行。如果数据不是密集的会产生随机IO 在执行计划中是Type列,index full table scan:通过读物理表获取数据,顺序读磁盘上的文件。

相关阅读排行


用户评论

游客

相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。