1:mysql基础
从新认识mysql内容之前,先从如何使用mysql开始;像我们拿到一个mysql的地址和账号密码,连接的时候与mysql做了哪些交互
1:打开连接器通过TCP,开辟资源,验证账号密码权限
MySQL在执行过程中 临时使用的内存是管理在连接对象里面的,长连接呢 不释放易导致oom,因此方式两种:删掉连接,重置连接恢复(执行mysql_reset_connection可以重新初始化连接资源)
2:mysql分析sql文 --》分析器
mysql进行一个请求时,会先分析这段指令内容,语法是否有误
3:解释查询指令 --》优化器
3.1 MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。不过是否需要开启:有待商锥;对于变化频繁数据弊大于利,缓存就失效了,没起到效果反而增加压力;(缓存在MySQL8.0之后就取消)
3.2 索引的选择(主键,联合,最左匹配原则),表之间join数据量
4:执行excute通过搜索引擎,把结果缓存(可设置) --》执行器
5:关闭连接(clinet不关闭默认8小时timeout)