退役笔记一#MySQL = lambda sql : sql + #39; Source Code 4 Explain Plan #39;
Mysql 查询运行过程 大致分为4个阶段吧:
语法分析(sql_parse.cc<词法分析, 语法分析, 语义检查 >)
>>sql_resolver.cc # JOIN.prepare
生成逻辑查询plan(sql_optimizer.cc)
>># JOIN.optimize
生成物理查询plan(sql_planner.cc)
run the explain plan(sql_executor.cc) JOIN.exec
JOIN.prepare() :
子查询的冗余子句消除
in类型子查询优化 resolve_subquery()
将all/any等类型子查询转换为min/max操作 对简单子查询进行的优化
JOIN.optimize():
子查询上拉 flatten_subqueries()
把外连接优化为内连接 simplify_joins()
消除嵌套连接
where子句, join/on子句,having子句化简,含有常量的表达式化简,等式合并 optimize_cond() opt_sum_query()
优化没有group by 子句的下的count(*) min() man()
确定多表连接路径 make_join_statistice()
优化distinct
创建暂时表存储暂时结果优化分组排序 choose_table_order()
事实上,逻辑与物理优化,有点混乱,分得不明白,
就是在物理查询优化之后,继续进行了部分逻辑优化
仅两种单表扫描方式:
index scan(others), table scan(JT_ALL)
Opt_range.h > class QUICK_SELECT_I > 利用索引扫描滴总接口
其几个子类 见source code;
基本的类和结构体:
查询树 class st_select_lex
索引 struct st_key_create_information class Key_part_spec
连接表 st_join_table
连接类 JOIN : public Sql_alloc
条件 COND_EQUAL
位置 struct st_position
代价估算 Cost_estimate
SELECT NOW(),CURDATE(),CURTIME()
转载于:https://www.cnblogs.com/yxwkf/p/3886654.html
退役笔记一#MySQL = lambda sql : sql + #39; Source Code 4 Explain Plan #39;相关推荐
- 学习笔记之-MySql高级之sql优化
一 Mysql简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. M/SQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据 ...
- mysql注入攻击实_三十三、MySQL基础系列笔记之MySQL安全问题与SQL注入攻击
SQL注入攻击大多数与程序有关系,程序不严谨是导致SQL注入攻击成功的一个原因.安全问题不容忽视,平常的开发中应关注安全问题.下面简单记录PHP中的SQL攻击问题. 什么是SQL注入攻击 SQL注入( ...
- mysql 临时表 事务_MySQL学习笔记十:游标/动态SQL/临时表/事务
逆天十三少 发表于:2020-11-12 08:12 阅读: 90次 这篇教程主要讲解了MySQL学习笔记十:游标/动态SQL/临时表/事务,并附有相关的代码样列,我觉得非常有帮助,现在分享出来大家一 ...
- 牛客网SQL刷题笔记(MySQL)
牛客网SQL刷题笔记(MySQL) 此博客集合LeetCode.牛客网常见的题型及其解法,侵删 目录 牛客网SQL刷题笔记(MySQL) 类型1:查找排名第几的数据 SQL2 查找入职员工时间排名倒数 ...
- Mysql学习笔记(基础)基础sql语句详细记录
数据库学习(基础) // 个人网课学习记录,如果有违规等问题,请联系我删除~ mysql下载安装( 解压版安装配置 下载版安装配置 ) 需求分析:使用cmd命令来创建一个数据库,并对数据库中得一张分类 ...
- 一千行MySQL学习笔记(MySQL常见SQL语句全详解)
/* 启动MySQL */ net start mysql/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证登录MySQL */ mysqld ...
- php 登陆 sql语句,PHP 连接MySQL数据库的SQL语句的简单示例
这篇文章主要为大家详细介绍了PHP 连接MySQL数据库的SQL语句的简单示例,具有一定的参考价值,可以用来参考一下. 首先用phpmyadmin进入建立数据库user 再建个三段的表admin 再别 ...
- cockroachdb mysql_CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储...
CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...
- MySQL中的SQL Mode及其作用
点击上方"蓝字" 关注我们,享更多干货! 与其它数据库不同,MySQL可以运行在不同的SQL Mode下.SQL Mode定义MySQL应该支持什么样的SQL语法,以及它应该执行什 ...
最新文章
- js调试之console.log()
- superset出现A valid API access token is required to use Mapbox data
- 如何使用Vue集成其它UI组件?如何阅读UI官网?移动端组件Vant实例教程(熬夜干货)
- egg 编码规范_从 Egg.js 到 NestJS,爱码客后端选型之路
- 计算机网络中的HTML,计算机网络分类有哪些
- Java:List判空的条件:List=null 和 List.size = 0 当需要对一个LIst进行判空操作时我们可使用如下两个语句:
- 相同数据源情况下,使用Kafka实时消费数据 vs 离线环境下全部落表后处理数据,结果存在差异...
- 【软件资源】MATLAB 7.0 安装教程
- matlab期货,Matlab在股指期货中的应用
- 4g模块Linux拨号ppp脚本,在ARM-linux上实现4G模块PPP拨号上网【转】
- provisional headers are shown问题排查
- WinServer2008 安装 Intel(R) 82579V Gigabit Network 网卡驱动
- n+1天 吾日三省吾身
- 输入参数varargin
- 无法打开这个应用,查看Microsoft store, 了解有关Nahimic的详细信息
- 【AWS云从业者基础知识笔记】——模块7:监控和分析
- 《阿里云天池大赛赛题解析(深度学习篇)》学习笔记(1)自然语言处理基础
- 构建产品“设计,制造,使用”的智慧互联 - Autodesk Forge概述 - 1
- 离散数学 (II) 习题 1
- 数据仓库ETL工具箱——清洗和规范化(一)
热门文章
- 网站推广——网站推广专员如何恢复下降的权重值?
- 网站建设需遵循用户访问习惯
- 修复Linux系统内核TCP漏洞,修复Linux TCP SACK PANIC 远程拒绝服务漏洞
- java公寓管理系统设计与实现_学生公寓(宿舍)管理系统的设计与实现(论文范文, jspjava).docx_蚂蚁文库...
- (转载)vim括号匹配等跳转技巧
- Kotlin学习 PART 1:kotlin定义和目的
- spark submit 入门
- 几种常见的CSS布局
- js在for循环中绑定事件
- webstorm / intellij IDEA / phpstorm license server 激活链接 (过期留言更新)