本章内容主要讲解MySQL各个功能模块怎么执行。
首先,MySQL中有连接器、分析器、优化器、执行器。
- 连接器:用户登入MySQL,同时验证该用户的权限信息。
- 分析器:对用户的操作命令进行判断,判断是否有关键字错误或者是语法错误。
- 优化器:优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的情况下,决定各个表的连接顺序。
- 执行器:执行你的操作命令,操作引擎,返回结果。
存储引擎
InnoDB, MyISAM, Memory, MySQL默认为InnoDB.
MySQL各个功能模块的执行过程
连接
- 长连接
连接成功后,如果客户端持续有请求,则一直使用同一个连接。 - 短连接
每次执行完很少的几次查询就断开连接。
查询缓存
之前执行过sql语句,都会讲命令和结果存储到查询缓存中。
不过查询缓存往往弊大于利,只要有表更新过,该表相关的查询缓存将全部失效。
8.0版本后没有查询缓存了。