今天复习了一下sql的执行流程,在这里简单做个笔记,方便后期回忆
下图为手动绘制的sql执行图,分解了sql执行的步骤
具体解释:
1.用户发送请求,tomcat进行处理,最终会调用msql驱动的数据库连接池,获取数据库连接,然后发送需要执行的sql。
2.Mysql接收到执行sql请求,调用数据库连接池里的一个线程去监听和读取请求数据,并从网络连接中读取和解析需要执行的sql数据。
3.处理线程解析出需要执行的sql数据之后,会调用sql接口,去执行sql语句。
4.sql接口会调用sql解析器,基于sql语法的结构,去拆解并解析sql语句,解析成可以让Mysql可以读懂的sql语句。
5.sql解析器解析出sql语句要做什么事情之后,就会调用优化器,找出sql执行效率最高的执行计划。
6.优化器找出最优的执行计划之后,就会调用执行器。由执行器去按一定顺序和步骤,去执行执行计划,也就是由执行器,去调用存储引擎里的各种接口,来获取内存或磁盘中的数据。
7.sql执行器执行完成之后,就获取到了sql语句想要获取的数据,然后返给用户。