李琪的技术专栏 System Research

MySql基础复习(4)---基础架构

2020-05-25
Clear Li

阅读:


MySql基础架构设计图

image-20200525152718654

大致上来说Mysql可以分为Server层和存储引擎两个部分。

1.server层:具有所有的内置函数(如日期,时间,数学和加密函数),还有存储过程,触发器,视图

2.存储引擎:插件式的架构模式,最常用的存储引擎是InnoDB

连接器

也就是用户连接时数据库所暴露的接口。当用户登陆时数据库会查找用户权限表中的权限,而当用户没有断开就更改权限表 则是无效的。

还有一个查询连接信息的sql

show processlist 

长连接:指在连接成功后如果客户端有请求则一直使用同一个连接。

弊端:长连接积累下来会造成数据库占用内存过大,造成mysql异常重启

短链接:指连接成功后在执行率几个语句查询后就断开连接

弊端:查询比较频繁则会增多连接操作,造成系统占用

建议:使用长连接对长连接的弊端的应用方案

1.定期断开长连接,或程序里面判断执行过一个占用内存的大查询后,断开连接,之后再重连

2.在5.7以上版本使用mysql_reset_connection()来重新初始化连接资源

分析器

就是分析sql语句,假如是查询语句那么查询的是什么表什么字段。

优化器

当提交一个查询时,mysql会分析,并尝试做一些优化

有以下任务

1.选择最合适的索引

2.选择全表扫描还是走索引

3.选择表关联顺序

4.优化where语句

其中最主要的就是尽可能的使用索引

执行器

执行开始之前,会先判断是否有操作权限,若没有,会抛出相关异常。

如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。


Similar Posts