数据库基础知识——MySQL基本架构

(仅供自己学习复习之用)

MySQL基本架构

啥?直接上图:
在这里插入图片描述

连接器

连接器的作用是和客户端建立链接,获取权限,维持和管理连接。连上MySQL服务后处于空闲状态,可以使用show processlist来查看空闲连接列表,其中Command为Sleep的行就表示系统里有一个空闲连接。
数据库的客户端太久没响应连接器就会自动断开,断开后重连的时候会报错,若要继续操作就需要重连了。解决的方法可以是把控制时间的参数wait_timeout(默认8h)修改得长一点。
另外的方法是使用长连接,但缺点是使用长连接内存会BOOM,会导致OOM,MySQL重启的问题接踵而至,JVM里就会导致频繁的Full GC。解决:定期断开长连接。
再者,可以在执行比较大的一个查询后,执行mysql_reset_connection可以重新初始化连接资源(此法不需要重连,但是会初始化连接的状态)。

查询缓存&分析器

如果查询的时候不想用缓存一般把query_cache_type设置成为DEMAND,这样SQL默认不适用缓;用缓存则用SQL_CACHE。看sql执行时间时,在sql前面使用SQL_NO_CACHE知道真正的查询时间: select SQL_NO_CACHE * from RespectAoBing
注意:缓存在MySQL8.0之后就取消了。
缓存没命中便分析语句,先来个词法分析,再来个语法分析,提醒对错和位置。

优化器

优化就是要确认使用哪个索引(主键索引、联合索引等)更好,还有就是对执行顺序(先查哪个表,还是先关联)进行优化,会出现很多方案,最后由优化器决定选用哪种方案。

执行器

执行的时候,就一行一行的去判断是否满足条件,explain可以看到扫描了多少行。

参考:https://mp.weixin.qq.com/s?__biz=MzAwNDA2OTM1Ng==&mid=2453141466&idx=1&sn=c89ecc9aa3fb62dd119ad17b4a9cada5&chksm=8cf2d559bb855c4f4cf2e3377afb3270eda1e32f8a868b4df04f59372ca6603a9292ace71f5d&scene=158#rd

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值