mysql(一)Mysql架构和sql执行流程

一条sql查询的流程

在这里插入图片描述
连接

mysql默认端口3306,客户端链接服务端的方式也很多:
	同步/异步
	长链接/短连接
	TCP/unix socket
可以通过sql查询连接超时时间、默认最大连接数,可更新最大连接数	

连接的session级别和global级别
一个客户端窗口查询,修改某个参数,如果不加global,只会在当前会话中生效。
加了global,其他的链接窗口才会生效

查询缓存

mysql自带了一套缓存模块,但是默认是关闭的,因为很鸡肋,所以缓存一般交给ORM(如mybatis的一级缓存)
8.0中直接被移除了

语法解析和预处理

select name from user where id =1;

这一条sql查询时:
1、先把一个sql拆成一个个单词,上面的sql会拆成8个符号
2、语法解析
3、预处理

在这里插入图片描述

查询优化与查询执行计划

优化器:
1、多表关联时以哪个表作为基础表
2、多个索引时选择哪个索引
等等

优化之后生成一个执行计划。
用explain +sql 就能看到执行计划

存储引擎

思考:
	数据放在那里
	在哪里执行,谁执行

存储引擎的选择:
	5.5.5之前创建表默认是 myisam,之后默认都是innoDB
	不同的表存放不同的 数据,可以选择不同的存储引擎

	Myisam
	innoDB
	memory
	csv
	archive

如何选择存储引擎:

执行引擎

执行引擎把数据返回给客户端

mysql 体系结构

总体上可以把mysql分城三层:
1、连接层-----链接客户端
2、server层:
	查询缓存、根据sql调用对应的接口、解析sql语句
	优化器优化,执行
3、存储引擎---存放数据,再往下是内存和磁盘

在这里插入图片描述

一条更新sql是如何执行的

innoDB总体架构

内存结构

磁盘结构

后台线程

binlog

更新sql流程总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值