MySql驱动
- 如果我们要在一个系统中访问数据库,必须在系统的依赖中加入一个MYSQL驱动,有了这个驱动,才能跟MYSQL数据库建立连接,然后执行各种各样的SQL语句。
- MYSQL驱动跟底层数据库建立网络连接,接着才能去发送请求给数据库服务器。
系统的数据库连接池
- 我们先来看第一种情况,如果只有一个网络连接,每个用户要对数据库进行操作,必须获得这个数据库连接,那么效率肯定底下
还有,就是如果每次请求都创建连接,销毁连接,效率低下。
所以我们就要用到数据库连接池,在池子里维持多个数据库连接,然后每次要请求数据库的时候,就拿出一个连接,用完之后放回去,不要断开连接,后续还可以使用。
MYSQL数据库的连接池
我们把目光放到MYSQL这边,有多个系统连接同一个数据库,那也要建立很多连接,那么MYSQL也要维护这些连接。
一条SQL语句执行的流程
1、网络连接必须让线程来处理
网络连接必须得分配给一个线程进行处理,由一个线程来监听请求以及读取请求数据,eg从网络连接中读取和解析出来一条我们系统发过去的SQL语句
2、SQL接口
MYSQL内部提供了一个组件,SQL接口;获取到请求之后,线程发送给SQL接口,SQL接口执行SQL语句。
3、查询解析器
我们输入的一句语句,需要被理解才能执行,所以就需要查询解析器,解析sql语句;理解这条语句是要操作哪一表,要做什么样的操作。
4、查询优化器
查询优化器:选择一个最优的查询路径
6、 调用存储引擎接口,执行sql语句
把查询优化器选择的最优查询路径交给底层的存储引擎去真正的执行。
我们的数据放在内存或者磁盘,存储引擎其实就是执行sql语句的,他会按照一定的步骤查询内存缓存数据,更新磁盘数据等。。。
7、执行器:根据执行计划调用存储引擎的接口
执行器会根据优化器选择的执行方案,去调用存储引擎的接口,按照一定的顺序和步骤,就把sql语句的逻辑执行了。
执行器会根据我们的优化器生产的一套执行计划,然后不停的调用存储引擎的各种接口去完成SQL语句的执行计划,大概就是不停的更新或者提取一些数据出来。
本人在看狸猫的课程 其实不错的,在这里记录一下,如果有侵权行为,请联系我。。。。
版权声明:本文为weixin_42012911原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。