MySQL工作原理

一、 MySQL结构图

        如图可见MySQL服务器主要是由 Connection Pool(连接池)、Management Services & Utilities(服务管理和工具)、SQL Interface(SQL接口)、Parser(解析器)、Optimizer(优化器)、Caches & Buffers(查询缓存)、Pluggable Storage Engines(存储引擎)、File systems(文件系统)组成。

二、MySQL各组件的作用

1. Connection Pool(连接池) 用于管理用户连接和线程处理,由于MySQL建立链接需要消耗很多时间,连接池会将这些链接进行缓存,更好的提升服务器性能。

2. Management Services & Utilities(服务管理和工具)   服务管理和控制工具。

3. SQL Interface(SQL接口)  接收来自客户端的SQL命令,并且返回执行结果给客户端。

4. Parser(解析器) 解析SQL语句,解析器是由Lex和YACC实现的。解析器会将SQL语句分解成数据结构,后续的执行步骤都是基于这个结构来解析和处理的。如果SQL语句不合理,在解析器分解时就会出现错误,那么SQL语句将不会继续执行下去。

5. Optimizer(优化器)   SQL语句在执行之前会进行语句优化,优化器使用的策略是 "选取 - 投影 - 联接"。

6. Caches & Buffers(查询缓存)  在执行我们的查询语句时会先从缓存中去查询,如果命中了缓存则会直接去查询缓存中取数据,这样也大大提高了查询的性能。

7. Pluggable Storage Engines(存储引擎)   包含各种存储引擎 InnoDB、MyISAM、Memory ...等,存储引擎才是真正和存储数据打交道的组件。

8. File systems(文件系统)  MySQL存储的数据文件、索引文件以及日志文件等。

三、查询语句的执行过程

        上图可以很清楚的看出,当客户端请求一条查询SQL时,首先会先从查询缓存里去查询看是否由命中查询结果如果有则直接返回结果给客户端,如果没有那么就会把SQL语句传递给解析器进行解析,解析器会将SQL进行数据结构化并进行预处理判断SQL语句是否正确,解析器解析完后将最新的解析树传递给查询优化器进行优化,优化完后生成执行计划给到存储引擎中,存储引擎从文件系统中取出数据并将数据返回给客户端同时进行缓存。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值