mysql架构和历史

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来支持高并发,实现了四个标准的隔离级别,默认级别是可重复读,

原文地址:https://www.cnblogs.com/suixin84/p/6518840.html