【MySQL数据库高级】 MySQL逻辑架构,存储引擎

MySQL逻辑架构:

插件式的存储引擎架构将查询处理和其他的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。
一、MySQL逻辑架构分为四层连接层、服务层、引擎层、存储层:
【MySQL数据库高级】 MySQL逻辑架构,存储引擎_第1张图片


二、MySQL执行周期

MySQL的查询流程大致是

  • 首先,MySQL客户端通过协议与MySQL服务器建连接,发送查询语句,先检查查询缓存,如果命中,直接返回结果,否则进行语句解析,也就是说,在解析查询之前,服务器会先访问查询缓存(query cache)——它存储SELECT语句以及相应的查询结果集。

  • 如果某个查询结果已经位于缓存中,服务器就不会再对查询进行解析、优化、以及执行。它仅仅将缓存中的结果返回给用户,这会大大提高系统的性能。

  • 语法解析器和预处理:首先MySQL通过关键字将SQL语句进行解析,并生成一颗对应的“解析树”。

  • MySQL解析器将使用MySQL语法规则验证和解析查询;

  • 预处理器则根据一些MySQL规则进一步检查解析树是否合法。

  • 查询优化器当解析树被认为是合法的了,并且由优化器将其转化成执行计划。

  • 一条查询可以有很多种执行方式,最后都返回相同的结果。优化器的作用就是找到这其中最好的执行计划。

  • 然后,MySQL默认使用的BTREE索引,并且一个大致方向是:无论怎么折腾sql,至少在目前来说,MySQL最多只用到表中的一个索引。

【MySQL数据库高级】 MySQL逻辑架构,存储引擎_第2张图片
(1)mysql之外类似java程序访问
(2)和连接池沟通
(3)去缓存、缓冲中查询
(4)SQL接口分析sql
(5)解析器解析复杂sql
(6)优化器,不影响结果进行优化,生成执行计划
(7)存储引擎按计划分类型执行
(8)存入缓存
(9)返回结果


存储引擎:

查看数据库存储引擎

  • SHOW ENGINES;
  • SHOW VARIABLES LIKE ‘%storage_engine%’;
    【MySQL数据库高级】 MySQL逻辑架构,存储引擎_第3张图片

你可能感兴趣的:(MySQL数据库,mysql,数据库,sql)