MySQL架构与引擎初识

一、MySQL逻辑架构

  

1、连接层:

  最上层是一些客户端和连接服务,所包含的服务并不是MySQL所独有的技术。它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等。

2、服务层:

  主要完成大多数的核心服务功能,如SQL 接口,并完成缓存的查询,SQL 的分析和优化及部分内置函数的执行。所有跨存储引擎的功能也在这一层上实现,如存储过程、触发器,视图等。在该层,服务器会解析并创建相应的内部数据结构(解析树),并完成相应的优化如重写查询、决定表的读取的顺序,选择合适的索引等,最后生成对应的执行操作。如果是select 语句,服务器还会先检查查询缓存(Query Cache),如果能够在其中找到对应的查询,服务器就不必再执行查询解析、优化和执行整个过程,而是直接返回查询缓存中的结果集。如果缓存空间足够大,这样在解决大量读操作的环境中能够很好的提升系统的性能。

3、引擎层:

  在存储引擎层,存储引擎真正的负责了MySql 中数据的存储和提取,服务器通过API 与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。存储引擎不会去解析SQL(InnoDB是一个例外,它会解析外键定义,因为MySQL服务器本身没有实现该功能),不同存储引擎之间也不会相互通信,而只是简单地响应上层服务器的请求。

4、存储层: 

  数据存储层,主要将数据存储在运行于裸设备上的文件系统上,并完成与存储引擎的交互。

二、存储引擎

  1、查看当前mysql支持的引擎

#查看当前mysql支持的引擎
SHOW ENGINES;

  

  2、查看当前mysql默认的存储引擎

#查看当前mysql默认的存储引擎
SHOW VARIABLES LIKE '%storage_engine%';  

  

  3、InnoDB引擎是mysql5.7的默认引擎,支持事务、行级锁定和外键。还有一个使用率较高的是MyISAM,两者对比如下:

  

 

posted @ 2019-04-24 11:32  caofanqi  阅读(448)  评论(0编辑  收藏  举报