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

mysql 13 MySQL基于规则的优化

01.条件化简

我们编写的查询语句的搜索条件本质上是一个表达式,这些表达式可能比较繁杂,或者不能高效的执行, MySQL的查询优化器会为我们简化这些表达式。为了方便大家理解,我们后边举例子的时候都使用诸如 a 、 b 、 c 之类的简单字母代表某个表的列名。

1.1 移除不必要的括号

在这里插入图片描述
1.2 常量传递(constant_propagation)在这里插入图片描述
1.3 等值传递(equality_propagation)
在这里插入图片描述
1.4 移除没用的条件(trivial_condition_removal)在这里插入图片描述
1.5 表达式计算
在这里插入图片描述
1.6 HAVING子句和WHERE子句的合并
在这里插入图片描述
1.7 常量表检测在这里插入图片描述

02.外连接消除
在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

03.子查询优化

我们的主题本来是唠叨 MySQL 查询优化器是如何处理子查询的,但是我还是有一万个担心好多同学连子查询的语法都没掌握全,所以我们就先唠叨唠叨什么是个子查询(当然不会面面俱到啦,只是说个大概哈),然后再唠叨关于子查询优化的事儿。

3.1子查询语法

想必大家都是妈妈生下来的吧,连孙猴子都有妈妈——石头人。怀孕妈妈肚子里的那个东东就是她的孩子,类似的,在一个查询语句里的某个位置也可以有另一个查询语句,这个出现在某个查询语句的某个位置中的查询就被称为 子查询 (我们也可以称它为宝宝查询哈哈),那个充当“妈妈”角色的查询也被称之为 外层查询 。不像人们怀孕时宝宝们都只在肚子里,子查询可以在一个外层查询的各种位置出现,比如:


http://www.kler.cn/news/363990.html

相关文章:

  • 面经之一:Synchronized与ReentrantLock区别
  • 《计算机视觉》—— 基于 dlib 库的方法将两张人脸图片进行换脸
  • Gitlab 完全卸载–亲测可行
  • Java八股文-Mysql
  • Android compose 重建流程1
  • 链表(虚拟头节点)
  • 解决ElasticSearch启动成功却无法在浏览器访问问题
  • 解决:git SSL certificate problem: unable to get local issuer certificate
  • 孤岛架构在异构性方面优势
  • 国内 Docker 镜像加速与 GitHub 加速服务:CNPROXY.TOP
  • Spring 设计模式之工厂模式
  • 分类任务中评估模型性能的核心指标
  • HTTP协议解析(http/1、2、3)
  • 【uniapp版即时通讯】IM社交交友聊天语音视频通话双端APP+搭建视频教程
  • 028.爬虫专用浏览器-抓取#shadowRoot(closed)下的内容
  • C#与C++交互开发系列(九):字符串传递的几种形式
  • 执行Django项目的数据库迁移命令时报错:(1050, “Table ‘django_session‘ already exists“);如何破?
  • 【spring cloud】深入探讨 集群,分布式,微服务
  • OpenGL 进阶系列05 - OpenGL 图元重启(primitiverestart)
  • python的散列类型与字符编码
  • 为什么说Tcp是面向字节流的以及(Tcp粘包问题、TCP/UDP对比、listen函数的backlog参数的意义)
  • Kafka高可用性原理深度解析
  • 信息安全工程师(69)数字水印技术与应用
  • k8s-service详解
  • 使用python,自动实现将多个 JPG 文件转换为一个 PDF 文件
  • 11106 操作(c)