如下图为MySQL架构涉及到的常用组件:
MySQL服务器中基本点组件包括:
- 连接器: 主要用于管理客户端连接/会话,权限验证。当客户端请求 MySQL 时,连接器用于接收连接,对传过来的用户密码进行身份验证,验证通过后,获取用户权限信息缓存起来,该连接后面都是基于该缓存中的权限执行SQL;
- 查询缓存: 执行查询语句的时候,先尝试从查询缓存中查询该sql是否已经有缓存的结果了,如果有则直接返回结果,如果没有则执行下一步;
- 分析器: 分析器拿到sql之后会尝试对sql语句进行
词法分析
看SQL要干什么,然后进行语法分析
校验语法的正确性,通过之后继续往下执行; - 优化器: 优化器拿到分析器的sql之后,对查询进行优化:继续解析sql,判断到需要走什么索引,决定表的读写顺序,根据实际情况重写sql,最终生成执行计划
- 执行器: 会先进行操作权限校验;然后根据执行计划执行sql,根据表存储引擎调用对应接口返回结果,这里的扫描行数就是指的接口返回的记录数,执行器拿到返回记录之后进一步加工;
- 存储引擎: 主要负责数据的存储和读取,server 层通过api与存储引擎进行通信。