MySQL 执行一条查询语句的内部执行过程?
连接器–>查询缓存–>分析器–>优化器—>执行器–>返回
- 客户端先通过连接器连接到 MySQL 服务器。
- 连接器权限验证通过之后,先查询是否有查询缓存,如果有缓存(之前执行过此语句)则直接返回缓存数据,如果没有缓存则进入分析器。
- 分析器会对查询语句进行语法分析和词法分析,判断SQL语法是否正确,如果存在语法错误会直接返回给客户端错误信息,如果语法正确则进入优化器。
- 优化器是对查询语句进行优化处理,如一个表里面有多个索引,优化器会判别哪个索引性能更好。
- 优化器执行完就进入执行器,执行器就开始执行语句进行查询比对了,直到查询到满足条件的所有数据,然后进行返回。