1.mysql的逻辑结构
a.第一层,基于网络的客户端/服务器的工具或者服务都有类似的结构,比如连接处理,授权认证,安全等
b。第二层:包括查询解析,分析,优化,缓存以及所有内置函数,存储过程,触发器,视图等
c。存储引擎,负责mysql中数据的存储和提取,
1.1 连接管理与安全性
每个连接拥有一个线程,服务器会负责缓存线程,因此不需要为每一个新建的连接创建或者销毁线程。
当连接时,会进行认证,基于用户名,原始主机信息和密码,一旦连接成功,会继续认证该客户端是否具有执行某个特定查询的权限
1.2 优化和执行
mysql会解析查询,并创建内部数据结构,然后对其进行优化,包括重写查询,决定表的读取顺序,以及选择合适的索引等。
2.并发控制
在两个层面的并发控制 : 服务器层和存储引擎层
2.1 读写锁
共享锁和排他锁 ,也叫 读锁 和 写锁 ,
2.2 锁粒度
锁策略就是锁的开销和数据的安全性之间寻求平衡,
表锁:会锁定整张表,
行级锁:最大程度支持并发,
3.事务
一组原子性的sql查询,
隔离级别: 未提交读,提交读,可重复读,可串行化
事务日志:帮助提高事务的效率,使用事务日志,存储引擎在修改表的数据时只需要修改其内存拷贝,
mysql中的事务: InnoDb,NDB cluster
4。多版本并发控制
5.mysql的存储引擎
Innodb引擎
数据存储在表空间中,采用mvcc来支持高并发,实现了四个标准的隔离级别,默认级别是可重复读,