了解 MySQL 体系架构

文 / @UTHEME

MySQL是一种视图广泛应用的关系型数据库管理系统,具有可扩展性、开放源代码等特点,成为广大企业的首选。为了更好地利用MySQL,必须了解MySQL体系架构。MySQL体系架构主要分为客户端和服务端两部分。

客户端连接器是客户端与服务端之间的桥梁,主要负责一些客户端的连接,针对不同的编程语言提供连接服务,例如Java、PHP等。连接池负责管理客户端与服务层数据处理的连接,以及对用户执行操作权限的校验。系统管理和控制工具负责备份安全、安全管理、集群管理服务和工具等。SQL接口接收客户端SQL命令,返回用户需要的结果,例如DML、DDL、存储过程、视图、触发器等命令。

服务层包括系统管理和控制工具、连接池、SQL接口、解析器、查询优化器、缓存等。解析器负责对SQL语句进行关键字分析、语法分析,并生成解析树和进行语法校验。查询优化器对生成解析树后并通过解析器完成语法后,选择合适的索引,生成执行计划,并与执行引擎交互。缓存是由一系列缓存组合而成,如表缓存、记录缓存、权限缓存、引擎缓存等,当缓存命中时,会直接从缓存中获取数据。

存储引擎层负责MySQL数据的读取和存取,例如InnoDB、MyISAM等,存储引擎层是MySQL中具体与文件打交道的子系统,是基于文件系统抽象出来用于MySQL和磁盘文件打交道的一个系统,可插拔式的,可以更换不同的存储引擎。MySQL的存储引擎包括MyISAM和InnoDB两种,5.6版本以后默认的存储引擎是InnoDB。InnoDB支持ACID的事务四个特性,支持四种事务隔离级别,默认是可重复读Repeatable Read的,支持crash安全恢复、外键、行级别的锁粒度和MVCC,而MyISAM不支持ACID的事务四个特性、四种事务隔离级别、crash安全恢复和外键,只支持表级别的锁粒度。

一条SQL的执行流程主要包括客户端进行连接、在server层的连接管理器中验证用户权限等操作、如果是非8.0版本的话会去缓存池中查看当前的SQL的缓存,如果有直接返回,如果缓存中没有则会由解析器语法语义生成解析树,优化器解析生成执行计划,并选择合适的索引,存储引擎调用API接口去查询数据,将查询到的数据更新缓存cache,最后返回给客户端。

总之,深入了解MySQL体系架构对于提高MySQL的应用和管理能力非常重要。希望通过这篇文章,读者可以更好地了解MySQL体系架构的相关知识,为使用和管理MySQL数据库提供帮助。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。