概述
本篇文章主要介绍mysql的架构,执行过程。
基础架构
mysql的基本架构如下图所示:
客户端
客户端是连接mysql的程序,是使用者。
服务端
服务层
- 连接管理器,用于管理和客户端的连接
- 查询解析器,识别sql语句
- 查询优化器,有时候我们写的sql并不是最优的,优化器会自动优化
- 查询缓存,经常查询的内容会自动缓存,在压力测试的时候要关闭掉缓存,不然就不准确了
-- 设置查询缓存的大小 set global query_cached_size = 0; -- 关闭缓存 set global query_cached_type = 0;
存储引擎层
存储引擎是针对表的,而不是数据库,需要特别注意,类似一个插件一样,可以开发自己存储引擎用到mysql中,例如第三方Sphinx(斯芬克司)存储引擎,用于全文检索。所以存储引擎又叫做表类型
- myisam
- inoodb
- memory
- 其他等等