该文章仅用于自己总结学习,文章总结于hollis
- 使用连接器,通过客户端/服务器通信协议与MySql建立连接。并查询是否有权限。
- 检查是否开启缓存。开启缓存且命中完全相同的sql语句,则将缓存中的结果直接返回。
- 由解析器进行语法分析和语义分析,并生成解析树。比如查询是select,表名user,条件xxxxxx,预处理器则会根据mysql规则进行检查解析语法是否合法。检查数据表或者数据列是否存在。
- 由优化器生成执行计划,根据索引看看是否可以优化
- 执行器来执行sql语句。这里具体的执行会操作mysql的存储引擎来执行sql语句,得到查询结果,如果开启了缓存,则还要进行缓存,否则直接返回。