24 mysql all 查询

前言

这里主要是 探究一下 explain $sql 中各个 type 

诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 

这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 

以及 相关的差异 

此系列文章建议从 mysql const 查询 开始看

 

测试表结构信息如下 

 
CREATE TABLE `tz_test` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `field1` varchar(12) DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=3333343 DEFAULT CHARSET=utf8

 

测试数据为序列 1 – 99

4fce0599cf3c46029273fa35b097f502.png

 

 

all 查询存在的记录

随便查询一个 非索引字段 

执行查询如下 “select * from tz_test where field2 = '33';”

 

在 row_search_mvcc 中增加输出, “printf(”%s”, ((char*)rec+0x11))”

输出情况如下, 可以看到的是 遍历了所有的记录

然后 “field99” 表示的是 field1 字段, 再之后的 “99” 是 field2 字段 

06b775ec2e7546cb9e10f5ad0382a438.png

 

 

第一条记录如下, 这是第一条记录, 然后 会依次遍历整张表的所有的记录

8729d58594984f0f9ee3d3ec0061ecc6.png

 

 

完 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值