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

芍药居网站建设公司网站建设优化400报价

芍药居网站建设公司,网站建设优化400报价,wordpress好用的文章编辑器,web网页表格制作前言 这里主要是 探究一下 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.hkea.cn/news/750564/

相关文章:

  • 遂昌建设局网站个人怎么做网站
  • 软件开发和网站建设网络营销的未来6个发展趋势
  • 做网站一年多少钱免费seo网站推广
  • 智通人才网东莞最新招聘信息官网seo是如何做优化的
  • 个人做跨境电商网站百度地图导航手机版免费下载
  • 阿里云注册网站之后怎么做网站百度联盟是什么
  • 动画制作视频河南网站排名优化
  • 网站关键词怎么做排名掌门一对一辅导官网
  • 现在什么网站做推广比较好网页设计需要学什么
  • 个人购物网站 怎么建网络营销包括
  • 有没有做鸭的网站工作室招聘广州网站优化工具
  • 深圳营销外深圳网络营销公司seo和sem的联系
  • 专业的网站制作公司哪家好竞价专员是做什么的
  • 海南省建设厅网站百度seo霸屏软件
  • 淄博张店做网站的公司爱站小工具圣经
  • wordpress w3seo优化自学
  • 临沂手机建站模板微信seo排名优化软件
  • 网站管理员怎么做板块建设艺人百度指数排行榜
  • 如何创建企业网站网络舆情处置的五个步骤
  • 做站长工具网站周口seo公司
  • 泉州自助建站系统地推
  • 美国 做网站免费网站建设哪家好
  • 如何做响应式布局网站seo搜索引擎优化期末及答案
  • 电脑系统优化软件十大排名北京网优化seo公司
  • 宁夏网站建设优化外贸网站优化推广
  • 开发网站开发工程师培训心得简短200字
  • 网站优化工具升上去软文营销代理
  • 北京监理协会培训网站变现流量推广app
  • 邯郸做wap网站最全bt搜索引擎入口
  • 用网站做自我介绍pptsem推广竞价托管