MySQL学习----MySQL架构与SQL执行流程

演化版本MySQL:MariaDB、InnoSQL 通信类型:同步、异步 链接方式:长连接、短链接 协议:tcp、unix socket

查看服务端连接数。

客户端链接与线程关系:客户端每产生一个会话session,在服务端就会有一个线程去处理这个操作。

-- mysql默认的影响范围是会话级别,如果需要展示或修改全局的则需要加上global
show global status like '%thread%';
-- 非交互形式的超时时间28800,jdbc程序
show global variables like '%wait_timeout%';
-- 交互式的超时时间28800,客户端工具datagrip等
show global variables like '%interactive_timeout%';
-- 默认客户端最大连接数151个
show global variables like '%max_connections%'; 

-- 查询缓存。但是这个缓存很鸡肋,如果查询语句中的大小写不一致也认为是不同语句会清除该表上一次的查询缓存。
show variables like '%query_cache%';
复制代码

MySQL查询语句执行流程

select * from table where a=123

query_cache :缓存

Parser :语法解析

词法解析:将完整的SQL拆分为一个个单词 语法解析:进行语法检查 通过语法解析会得到一个解析树

pre process :预处理器

对语义进行分析,判断别名是否正确、表是否存在等

optimizer :优化器

对于一条SQL,其执行路径是可以不一样的。当有多个索引的时候,优先走哪个索引? 优化SQL:生成、选择执行路径(也称为执行计划)(基于cost的优化器)

execution plan :执行计划

// 查看实行计划
explain select * from user
// 返回json数据
explain format=json select * from user

-- 开启 100% 展示 MySQL 语句执行的神器-Optimizer Trace
show variables like '%optimizer_trace%'
-- 开启会有性能消耗
set optimizer_trace='enabled=on';
select * from information_schema.optimizer_trace
复制代码
{
  "query_block": {
    "select_i
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值