目录
查询过程
项目部署在Tomcat中,从页面发起一个查询订单列表的请求,Tomcat中的线程收到用户的请求后,把请求转发给项目,项目会根据代码去数据库中查询订单的数据,不管是使用原生的JDBC、还是Mybatis、Hibernate等框架,其底层都是先获取一个JDBC连接,通过JDBC和数据库建立连接,在数据库中执行sql语句。

Mysql也会有线程获取到JDBC连接中的sql语句,把sql语句交给MYSQL中的sql接口,sql接口转发给sql解析器解析,比如sql解析器会把一条sql语句中的表名称、WHERE关键字后面的查询条件、以及具体查询哪些字段等信息都解析出来,然后把解析好的信息交给查询优化器处理。查询优化器会根据sql解析器解析好的sql语句信息,选择一个效率最高的处理方案,来作为执行sql语句的执行计划,然后转交给执行器去执行。执行器调用MYSQL的存储引擎,这里用InnoDB存储引擎举例,InnoDB存储引擎中的接口就会来执行sql语句,如下图:
本文详细探讨了MySQL数据库查询的全过程,从用户发起请求到数据的磁盘IO,包括磁盘物理结构、顺序和随机读写的影响。指出磁盘IO的缓慢是查询速度慢的主要原因,尤其是对于大规模数据时,优化查询的关键在于减少磁盘IO次数。
订阅专栏 解锁全文
4520

被折叠的 条评论
为什么被折叠?



