带你了解一些MySQL的基础知识

1.MySQL的基本架构,然后按架构说下查询的流程。
带你了解一些MySQL的基础知识
1.客户端通过连接器和MySQL进行连接。连接器负责和客户端链接、获取权限、维持和管理连接。链接 的时候会通过TCP握手,然后身份验证输入用户名和密码就好了。连接上之后处于空闲状态,可以通过show processlist查看空闲列表。数据库的客户端太久没有响应会自动断开,默认时间为8小时。
2.MySQL拿到查询请求后会先查询缓存,看看之前是否执行过这条语句。如果命中就返回缓存中的value。但是这个表进行更新操作,所以的查询缓存就会被清空。
3.如果没有命中缓存,就开始执行语句了。首先是词法分析:识别每个字符代表的表是什么,是关键字,还是表名,还是列名等。然后就是语法分析:分析判断你的语法是否有误,错了会提醒你哪里错了。
4.然后下一步进入到优化器。优化器会确认你使用的索引,然后就是对执行顺序优化,条件那么多,先查哪个表还是先关联,会有很多方案,优化器决定选用那种方案。
5.最后一步交给执行器去做。执行的时候就是一行一行的去判断是否满足条件,有索引就会比较快。
6.数据库的慢⽇志有个rows_examined字段,扫描多少⾏可以看到,还有explain也可以看到执⾏计划,我们扫描了多少⾏。