当前位置: 首页 > news >正文

随州网站建设哪家优惠网络推广培训去哪里好

随州网站建设哪家优惠,网络推广培训去哪里好,深圳房地产网站建设,上海家装公司十大排名前言 这里主要是 探究一下 explain $sql 中各个 type 诸如 const, ref, range, index, all 的查询的影响, 以及一个初步的效率的判断 这里会调试源码来看一下 各个类型的查询 需要 lookUp 的记录 以及 相关的差异 此系列文章建议从 mysql const 查询 开始看 测试表结构…

前言

这里主要是 探究一下 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

6435438d244443e8ab24c52f9a11fee7.png

 

 

ref 查询存在的记录

更新表结构, 增加 field1 的索引配置 

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

 

执行更新, 更新一部分记录的 field1 为 ”field33”

update tz_test set field1 = 'field33' where id in (33, 35, 60);

 

mysql 读取索引, 这个是在读取索引的数据, 然后和 查询条件进行对比  

索引记录存放了 原字段的值 -> 记录的主键 

这里获取到第一个匹配的索引记录

62d1768279794aa2a03c5c0da1cdd86f.png

 

up_rec 索引记录信息如下, 为 ‘field33’ -> 33

然后这里将 pcur->btr_cur->page_cur.rec 更新为 ‘field33’ -> 33 对应的索引的位置 

然后 接下来就是 读取索引的记录

d069245bba2943479f258703fc54b853.png

 

然后是比较 索引字段的信息 和 查询条件, 如果匹配上 才获取对应的记录

89208e1f1d354a4fa4b3a9c595407cdf.png 

 

是否需要查询真实记录?

 

这里会有两种情况, 一种情况是查询的 索引字段 以及 主键, 不需要额外的查询真实记录, 术语称之为 覆盖索引 

假设是普通字段, 这里更新 need_to_access_clustered 为 TRUE

b8db21b9b4b14b02a3ab8045ff801b6a.png

 

另外一种是需要根据 主键关联查询 到 真实的记录, 术语称之为 回表 

修改数据表结构如下 

CREATE TABLE `tz_test` (`id` int(11) unsigned NOT NULL AUTO_INCREMENT,`field1` varchar(12) DEFAULT NULL,`field2` varchar(16) DEFAULT NULL,PRIMARY KEY (`id`) USING BTREE,KEY `field1` (`field1`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8update tz_test set field2 = id;

 

row_sel_get_clust_rec_for_mysql 中是根据索引记录获取真实的记录 

prebuilt->clust_ref 为根据索引记录构造出的 主键查询条件

btr_pcur_open_with_no_init 根据这个主键查询条件去定位目标记录, 将记录信息更新到 prebuilt->cluster_pcur 中相关 

a5a1d87d06b74461a408ba00ebf794e0.png

  

根据索引记录 构造 主键查询条件的地方, 比如这里 ‘field33’ -> 35 的索引记录 

构造出来的主键查询条件为 “where id = 35”

246426680b8046e4b44f633fadeea46a.png

 

更新待复制 rec 为 cluster_rec, 这里的 cluter_rec 为真实记录的地址信息

f635f964c1aa45259efbfbe1e1ccbf52.png 

cluster_rec 的记录信息如下 

58835178ec7847bb83ade74c17244cc5.png 

读取到了真实记录的信息到 mysql_buf

47d70afa718c42528f8e6b2ccba5675d.png 

然后不断向下迭代索引记录, 这里是迭代到了 ‘field33’ -> 35

依次会迭代 ‘field33 -> 60’, ‘field34’ -> 34

到 ‘field34’ -> 34 的时候, 比较索引条件 跳出了 row_search_mvcc 的循环 

8db8471f02ec4e56b424e5ca662752fe.png

 

这里遍历的索引记录信息依次如下, 索引是按照顺序排列的 

到 ‘field34’ -> 34 的时候, 比较索引条件 跳出了 row_search_mvcc 的循环 

7f233b6c303149ee97f64ee3275f2ac7.png

 

第二条以及之后的记录是缓存在了 prebuilt->fetch_cache 中, 最多预取 7 条记录 

10a0127e77914022b9d4ca59ac3219c9.png

 

第二次, 第三次获取数据是直接通过缓存获取 

这里 prebuilt->fetch_cache 中各个元素是已经转换好了的 mysql_rec, 因此 这里是直接 memcpy 到 READ_RECORD.record 中即可 

56817e97743b4876804cb7742693cbf1.png

 

 

ref 查询不存在的记录

比如说我这里执行一个查询 “select * from tz_test where field1 = 'field133';”

然后时 查询不到记录的, 这里来调试一下 这里的整个流程

查询索引, 定位到的最近的一条记录是索引记录 ‘field14 -> 14’, 然后是根据是根据条件进行匹配, 结果匹配不上退出 row_search_mvcc

ec70f69a19224417afc531d8190e385a.png

 

索引条件匹配不上之后退出  

83d0e35ee98e4a07965b3f6fa2b17d4e.png

 

然后外层迭代 记录/索引 这一层处理, 跳出循环 

最终响应 0 条记录 

39399d7a7a08478bb73bc9203f7dd828.png

 

 

 

 

 

http://www.ritt.cn/news/1340.html

相关文章:

  • 聊城做网站比较不错的公司外贸接单平台
  • qq免费的推广引流软件seo管家
  • 手机网站开发用什么框架好代运营一般收费
  • 网站建设实操的心得体会北京seo公司wyhseo
  • 企业网站内页设计模板网络营销推广流程
  • 地信的网站建设网络营销的概念与含义
  • 网站建设职业培训b站视频推广
  • 做日本外贸网站百度用户服务中心官网
  • 互助县公司网站建设百度查询
  • 如何评判一个网站建设的怎么样游戏推广平台代理
  • wordpress 搜索词调用soe搜索优化
  • 怎么把电脑当服务器做网站企业网站策划
  • 个人建网站允许吗湖南百度seo排名点击软件
  • 助孕网站优化推广青岛网站建设方案
  • 我有一个域名怎么做网站网站制作公司咨询
  • 网站图片切换怎么做的日照网络推广
  • 如何做网站刷题东莞网站建设优化诊断
  • 做企业网站的架构图全网推广费用
  • 自适应网站如何做移动适配怎样做线上销售
  • 阿坝北京网站建设重庆seo网络营销
  • 阿里云服务器开源做几个网站推广策划
  • 广州网站建设 易点国外seo
  • 从零精通网站建设外贸google推广
  • php 手机网站cms抖音推广方式有哪些
  • 做网站可以用新建项目的方式吗杭州seo俱乐部
  • 网站怎么做配置文件夹希爱力双效片副作用
  • 卢湾网站设计关键词上首页软件
  • 云南网站建设的价值aso优化哪家好
  • 营销型网站建设企业百度推广公司哪家比较靠谱
  • 上传产品网站怎么做的网站优化外包价格