1 mysql 逻辑架构
1.1 网络连接层
MySql5.5或者更新的版本提供一个api,支持线程池(Thread-Pooling)插件,可以使用池中少量的线程来服务大量的连接
此层完成连接、授权认证(用户名密码或安全套接字方式连接)、安全等
1.2 MySQL 服务层
大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内部函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现,譬如存储过程、触发器和视图等
优化器并不关心使用的什么存储引擎,但是存储引擎对优化查询是有影响的。优化器要求存储引擎提供容量或某个具体操作的开销信息。
对越select语句,在解析查询之前,服务器会检查查询缓存,如果能找到对应的查询,服务器不必进行查询解析、优化和执行的过程,直接返回缓存中的结果集。
1.3 存储引擎
存储引擎负责mysql数据的提取和存储。
服务器通过API与存储引擎进行通信,用来屏蔽不同存储引擎之间的差异
2 锁力度
Mysql提供了多种选择,每种存储引擎也都实现了自己的锁策略和锁力度
表锁:是mysql中最基本的所策略,并且开销最小的策略。
尽管存储引擎可以管理自己的锁,MySQL本身还是会使用各种有效的表锁来实现不同的目的。比如在alter table之类的语句使用表锁,而忽略存储引擎的锁机制
行级锁:是在存储引擎层实现的。