MySQL数据库的基础架构

Posted phoniex22

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库的基础架构相关的知识,希望对你有一定的参考价值。

前言

我思故我在

mysql基础架构图

技术图片

MySQL组成部分说明

①连接器

作用:负责和客户端建立连接,权限校验,管理和维护连接,连接完成处于空闲状态。

问题:如何查看空闲列表?

答案:通过show processlist查看,在Command字段,为Sleep为空闲状态。

技术图片

引申:我们知道如果客户端长时间不相应,那么会断开连接,而这个时长由wait_timeout控制,默认时间8小时。

命令:SHOW GLOBAL VARIABLES LIKE ‘wait_timeout‘;

技术图片

注意我们在这里得到的是28800秒,单位是秒。

命令:SET GLOBAL wait_timeout=28800;

这个命令是设置连接时间为28800秒,你也可以设置为其他时间。

问题:对于默认时长超过8个小时,就会连接中断,那我们有什么解决办法?

答案:我们可以使用长连接去解决这个问题,避免每次请求都创建连接的开销,节省了时间和IO消耗,但是会导致内存上升很快,这是因为MySQL的临时内存空间是由连接对象管理,只有断开连接才会释放内存,最后内存占用太大,会被系统杀掉,从而导致MySQL重启。

问题:如何解决长连接存在的问题?

答案:1,我们使用完长连接之后,在断开连接,下次使用的时候在重新连接。2,我们可以执行mysql_reset_connection函数来初始化连接,让连接回到最初的使用状态。

②缓存

作用:mysql也是有缓存的,一般用于select语句,里面的结构是key-value的形式,sql语句作为key,但不建议使用mysql当中的缓存,一旦数据库执行update,insert,delete时就要删除缓存,命中率太低,所以在mysql8.0的时候缓存就被删除了

问题:查询的时候用缓存什么操作,不用缓存又是什么操作?

答案:1,把query_cache_type设置成为DEMAND,这样SQL默认不适用缓存。2,SELECT SQL_NO_CACHE * FROM 表名,不使用缓存。3,SELECT SQL_CACHE * FROM 表名,使用缓存。

③分析器

作用:主要用于检查是否出现语法错误,如果有,就返回错误信息。

④优化器

作用:判断使用哪个索引更高效等。

⑤执行器

前提:mysql通过分析器知道了要做什么,通过优化器知道了怎么做。

作用:1,校验该用户是否有操作这张表的权限。2,执行优化设计结果,返回执行结果。

最后

如果大家不喜欢文字,可以保存一下我的流程图。
技术图片

以上是关于MySQL数据库的基础架构的主要内容,如果未能解决你的问题,请参考以下文章

MySQL数据库的基础架构

mysql基础架构

mysql复制(高可用架构方案的基础)

Database基础:部署集群基础环境MySQL-MMM架构部署MySQL-MMM架构使用

MySQL运行原理与基础架构

部署集群基础环境,MySQL-MMM架构部署,MySQL-MMM架构使用