美文网首页数据库
MySQL架构分析

MySQL架构分析

作者: Okami_ | 来源:发表于2019-04-16 23:38 被阅读16次

架构图

MySQL架构总图

连接层

  • 当MySQl启动(MySQL服务器就是一个进程),等待客户端连接,每一个客户端连接请求,服务器都会新建一个线程处理(如果是线程池的话,则是分配一个新的线程),每个线程独立,拥有各自的内存处理空间。当多个连接同时查询的时候没事,但是如果多个连接同时修改数据就会有数据同步的问题。
  • 连接到服务器,服务器需要对其进行验证,包括用户名,密码,IP。一旦连接成功,还要验证是否具有执行某个特定操作的权限

SQL处理层

  • 这一层的功能主要有:SQL语句的解析、优化、缓存的查询,MySQL内置函数的实现,跨存储引擎功能(所谓跨存储引擎就是说每个引擎都需提供的功能(引擎需对外提供接口)),例如:存储过程、触发器、试图等

    • 如果是查询语句(select),首先会查询缓冲是否已经有相应的结果,有则返回结果,无则进行下一步(如果不是查询语句,同样跳到下一步)
    • 解析查询,创建一个内部数据结构(解析树),这个解析树主要用来SQL语句的语义与语法解析
    • 优化SQL语句,例如重写查询,决定表的读取顺序,以及选择需要的索引等。这一阶段用户是可以查询的,查询服务区优化器是如何进行优化的,便于用户重构查询和修改相关配置,打到最优化。这一阶段还涉及到存储引擎,优化器会询问存储引擎,比如某个操作的开销信息、是否对特定索引有查询优化等。
  • 查看查询缓存SHOW VARIABLES LIKE '%query_cache_type%'

解析查询

存储引擎

  • 显示支持的存储引擎SHOW ENGINES;
  • MyISAM和InnoDB的对比


相关文章

网友评论

    本文标题:MySQL架构分析

    本文链接:https://www.haomeiwen.com/subject/cxyewqtx.html