24 mysql all 查询

news2024/12/22 19:09:39

前言

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

 

 

完 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1063370.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络】路由器和交换机的区别

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_Linux,大数据运维-CSDN博客 🎐✨🍁 🪁🍁 希望本文能够给您带来一定的帮助&#x1…

小谈设计模式(21)—迭代器模式

小谈设计模式(21)—迭代器模式 专栏介绍专栏地址专栏介绍 迭代器模式对象分析聚合对象(Aggregate)迭代器对象(Iterator) Java程序示例程序分析12 优缺点分析优点简化了聚合对象的接口统一的遍历方式增加了代…

20秒基于Chat GPT完成工作中的小程序

1. 写在前面 GPT自从去年爆发以来,各大公司在大模型方面持续发力,行业大模型也如雨后春笋一般发展迅速,日常工作中比较多的应用场景还是问答模式,作为写程序的辅助也偶尔使用。今天看到一篇翻译的博客“我用 ChatGPT,…

更新Xcode 版本后运行项目出现错误 Unable to boot the Simulator 解决方法

错误截图 出现 Unable to boot the Simulator 错误原因很多,以下方法不一定都适用,我是通过以下方法解决的 打开命令终端输入以下命令,可能需要你输入开机密码 sudo rm -rf ~/Library/Developer/CoreSimulator/Caches

Android---字节码层面分析Class类文件

Java 提供了一种可以在所有平台上都能使用的一种中间代码---字节码文件(.class文件)。有了字节码,无论是那个平台只要安装了虚拟机都可以直接运行字节码文件。有了虚拟机,解除了 java 虚拟机与 java 代码之间的耦合。 Java 虚拟机当初被设计出来时就不单…

【设计模式】访问者模式

文章目录 1.访问者模式定义2.访问者模式的角色3.访问者模式实战案例3.1.场景说明3.2.UML类图3.3.代码实现 4.访问者模式优缺点5.访问者模式适用场景6.访问者模式总结 主页传送门:💁 传送 1.访问者模式定义 访问者模式(Visitor Pattern&#x…

【MATLAB源码-第43期】基于matlab的turbo码误码率仿真比较不同迭代次数,采用logmap/sova算法。

操作环境: MATLAB 2022a 1、算法描述 Turbo码是一种前向纠错码 (Forward Error Correction, FEC),在 1993 年由法国的两位研究员 Claude Berrou 和 Alain Glavieux 提出。这种编码技术以其接近 Shannon 极限的高性能而受到广泛关注。以下是关于 Turbo…

黑马JVM总结(二十六)

(1)异常-catch 下面看一下字节码里面怎么做异常的处理 (2)异常-多个catch astore_2:就是把异常对象的地址存到局部变量表2号曹位上 (3)异常-multicatch (4)异常-finally &#xff0…

uniapp 实现地图头像上的水波纹效果

最近实现了uniapp 地图头像水波纹的效果,话不多说,先来看看视频效果吧:链接 在这里具体的代码就不放出来了,还是利用了uniapp的 uni.createAnimation 方法,因为cover-view 不支持一些css 的动画效果,所以这…

探秘布隆过滤器:高效数据查找与去重利器

探秘布隆过滤器:高效数据查找与去重利器 引言 在现代计算机科学中,数据的查找与去重是一个至关重要的问题。本文将介绍一种高效的数据结构——布隆过滤器,它能够在海量数据中快速判断某个元素是否存在,同时具有出色的空间效率。…

动态调整系统主题色(4): CssVar 与 Variant 方案的探索

动态调整系统主题色(4): CssVar 与 Variant 方案的探索 动态调整系统主题色(4): CssVar 与 Variant 方案的探索 前言方案的介绍与比较 CssVar (CSS 变量方案)CSS 变量方案与 tailwindcss 的结合Variant 方案 2种方案在小程序上的示例之前的几篇 前言 这篇已经是动态调整系统…

深度学习模型部署与优化:策略与实践;L40S与A100、H100的对比分析

★深度学习、机器学习、生成式AI、深度神经网络、抽象学习、Seq2Seq、VAE、GAN、GPT、BERT、预训练语言模型、Transformer、ChatGPT、GenAI、多模态大模型、视觉大模型、TensorFlow、PyTorch、Batchnorm、Scale、Crop算子、L40S、A100、H100、A800、H800 随着生成式AI应用的迅猛…

python打开浏览器并模拟搜索

打开已存在的浏览器 打开已存在的浏览器有个很重要的作用就是,可以对于一些登录场景,提前登录好,不需要模拟登录了。 在命令行中执行打开chrome的命令,在图标上找到chrome的安装位置 在cmd命令行下执行命令 C:\Program Files\…

工厂管理软件中的计划排产是什么

一、计划排产的定义: 计划排产是指根据工厂的生产能力、订单需求和资源限制等因素,合理安排生产任务和时间,以实现高效的生产计划。它涉及到生产订单的分配、生产线的调度和资源的优化利用,旨在提高生产效率、缩短交货时间和降低…

高速公路堵车动力学

S/t trace 图可以分析牛顿力学时间序列的一切。 下例分析了当车距太小时,一个轻微的刹车扰动如何触发大堵车的: 堵车由以下因素促成: 刹车反应时间,刹车反应很快,看见灯即可,即使这样越往后刹车必须越狠&…

对于对象初始化的加深理解

一道有一定难度和挑战性的注重细节的有趣的面试题 目录 案例需求不同写法与角度下写法一写法二写法三写法四A类B类测试类 注参考视频 案例需求 不同写法与角度下 写法一 注:方法的修饰符为private package com.xie.interview;/*** 对象属性初始化相关的面试笔试题*…

Stable diffusion的架构解读(本博客还是以unet架构为主)

博客只是简单的记录一下自己学的,基于自己的一些情况,所以简单了一些只是将来忘记,用来回顾用。 论文的大体框架 unet结构位于 unet会接受prompt特征、latent特征、和t时间步特征,最后生成新一轮的特征 可以参考知乎大佬htt…

re学习(37)DASCTF 2023 0X401七月暑期挑战赛 controflow

程序通过改变栈里面的返回地址来控制程序的控制流 从而达到混淆的效果 左侧有许多被hook的函数 在每个函数开头设置断点 然后观察程序的运行流程 会发现输入的数据会进行 异或 相加 异或 相减 相乘 异或等操作 要注意部分运算的索引是 从[10]开始的 具体思路参考&#xf…

三十、【进阶】B-Trees的演变过程

1、索引结构 (1)二叉树 (2)B-Tree树 B-Tree树最大度数为5,代表每一个节点最多存储4个key(每个节点最多存储4个数据),5个指针(可以指向5个子节点)。 2、演变过程(最大度数为5) &…

gorm 自定义时间、字符串数组类型

文章目录 自定义时间类型自定义字符串数组测试与完整代码测试代码测试结果 GORM 是GO语言中一款强大友好的ORM框架,但在使用过程中内置的数据类型不能满足以下两个需求,如下: time.Time类型返回的是 2023-10-03T09:12:08.5352808:00这种字符串…