美文网首页
MySQL体系架构

MySQL体系架构

作者: GrooveWind | 来源:发表于2017-03-15 00:14 被阅读0次

    基础概念

    数据库实例是由数据库后台进程/线程以及一个共享内存区组成。共享内存可以被运行的后台进程/线程所共享。需要注意的是,数据库实例才是真正用来操作数据库文件的。

    MySQL体系架构

    如图所示:

    mysql体系架构
    1. 最上层的连接服务,用于不同语言与SQL的交互。
      • 可以通过【show variables like '%connections%'】命令查看MySQL实例的最大连接数和单个用户的最大连接数。
    2. 第二层MySQL Server,大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存,所有跨存储引擎的功能都集中在这一层实现。
      • Management Serveices & Utilities:系统管理和控制工具
        备份和恢复的安全性,复制,集群,管理,配置,迁移和元数据。
      • Connection Pool:连接池
        进行身份验证、线程重用,连接限制,检查内存,数据缓存;管理用户的连接,线程处理等需要缓存的需求。
      • SQL Interface:SQL 接口
        进行 DML、DDL,存储过程、视图、触发器等操作和管理;用户通过 SQL 命令来查询所需结果。
      • Parser:解析器
        查询翻译对象的特权;SQL 命令传递到解析器的时候会被解析器验证和解析。
      • Optimizer:查询优化器
      • Cache 和 Buffer:查询缓存
        全局和引擎特定的缓存和缓冲区
    3. 第三层为存储引擎层,存储引擎负责MySQL中数据的存储和提取,服务器通过API于存储引擎进行通信。
      • 可以通过【SHOW ENGINES】命令查看各个存储引擎信息。

    执行流程

    mysql-architecture

    在 MySQL Server 中首先有一个 Cache,用来缓存 SQL 查询语句的查询结果,如果缓存命中,则直接返回结果,如果缓存没有命中,则对 SQL 语句进行语法分析,预处理和查询优化,最终得到该查询的执行计划,之后,该执行计划被送往数据库引擎,得到最终查询到的数据。数据库引擎并不会严格按照执行计划进行执行,而是会根据自身的架构和特性进行一些调整,以提高执行效率。

    相关文章

      网友评论

          本文标题:MySQL体系架构

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