MySQL的小知识点(二)

119 阅读2分钟

「这是我参与2022首次更文挑战的第17天,活动详情查看:2022首次更文挑战image.png 看完了MySQL是怎么安装的,接下来看看MySQL的系统架构。

MySQL的系统架构

先从整体上看下MySQL的逻辑架构,如下: image.png 从图上可以看到MySQL由连接处理、解析和查询缓存、以及优化器和存储引擎组成。接下来看看各个部分负责什么样的工作。

连接管理

从名称可以看出,这一块是MySQL用来管理客户端的连接的。每个连接到MySQL的客户端都会占用一个线程,MySQL内部会为线程做缓存,也就是说,当客户端断开连接时,线程不一定会被回收,而是被MySQL缓存了起来,只要缓存足够。除非MySQL内部的缓存不足,才会回收线程。当然,作为连接管理,它也负责连接认证和授权等安全部分。

优化器

经常用MySQL的开发人员,应该或多或少听说过MySQL的优化器。MySQL内部会将客户端发送过来的语句解析为语法树,优化器就是在这个基础上对查询的语法进行优化。我们可以通过explain查询优化器对语句做出的优化策略,也可以通过hint提示优化器。这对我们了解MySQL内部的执行逻辑有很好的帮助。值得注意的是,MySQL的优化器只是对语句进行优化,和存储引擎无关,即不关心存储引擎的实现。

存储引擎

这一块是数据存储层的实现,负责和存储介质做交互,持久化我们通过sql语句发送的数据。每种存储引擎都有自己的适用场景。存储引擎大概有如下几种:

innodb
myisam
archive
blackhole
csv
memory

以上都是MySQL官方内嵌的数据库,当然还有很多第三方的存储引擎,这里不做介绍。如果不知道如何选择存储引擎,那么innodb不错的选择,它目前也是MySQL的默认引擎,毕竟它扛过了多数的生产环境的实践。