01 | Mysql 基础架构
先问几个问题
[ ] 为什么修改权限后要到下次建立连接时才生效
[ ] mysql 的长连接与短连接各有什么优劣
[ ] 为什么使用长连接后有时 mysql 占用内存涨的特别快
[ ] 如何解决长连接的占用内存多的问题
一、学习思想:
自顶向下,鸟瞰全貌
二、基本架构:
1、跨存储引擎的功能
连接器:先连接 功能:负责与客户端建立连接、获取权限、维持和管理连接 实例:进入 mysql 时输入的:mysql -u xxx -p xxx 连接成功后:从权限表中查出权限,是本次连接的所有权限(修改权限下次生效)
show processlist
命令可以查看当前所有连接 连接器可以自动断开:由变量 wait_timeout 控制 mysql的长短连接推荐阅读 长连接:连接后,若客户端持续请求,则一直使用同一个连接 好处:减少连接的开销 坏处:长时间占用内存空间,系统会因其占用内存过多而强行杀掉,导致 mysql 异常退出 短连接:执行完几次查询后就断开,需要重连 频繁建立连接耗时查询缓存 8.0 版本已废弃 缓存失效非常频繁
分析器:你要干啥 从 SQL 语句中进行解析语句,生成解析树 检查语法是否正确
优化器:最优解 决定使用什么索引 决定多表关联时的连接顺序
执行器:去做吧 判断是否有权限 调用存储引擎的 API
2、存储与提取
插件式:支持 InnoDB、MyISAM、Memory 等多个存储引擎
InnoDB 是默认的存储引擎
版权声明: 本文为 InfoQ 作者【zach】的原创文章。
原文链接:【http://xie.infoq.cn/article/c43a432872555f617b78dc519】。文章转载请联系作者。
评论