一、引子
在日常工作中,我们执行了一个简单的查询语句:
select * from <table_name> where id = 647;
那么,在
MySQL
内部会如何工作呢?
二、架构
首先,MySQL
架构可以分为 Server层 和 Engine层两部分。
Server(服务)层:
涵盖了 MySQL
上层核心服务功能。
包括 “连接器”、“查询缓存”、“分析器”、“优化器”、“执行器”等等。
以及内置功能函数(数学、时间计算等等),触发器、视图等等跨存储引擎的功能都在 Server 层实现。
Engine(引擎)层:
主要负责数据的存储和提取等底层服务。
其实现是插件式的,MySQL 支持 InnoDB
、MyISAM
、Memory
等多个存储引擎。
目前,最常用的是 InnoDB 存储引擎。
而从 MySQL 5.5.5 版本开始,InnoDB
成为了默认存储引擎。
可以使用 show engines;
命令来查看各个引擎。
show engines;
几个常用底层存储引擎的简单区别:
InnoDB:支持事务,支