客户端:PHP JAVA Navicat
服务端:
连接层:主要用于程序的连接
判断用户密码校验校验后会分配一个线程管理这个连接查询用户的权限=》对表的操作权限返回连接的id
优化器+解析器+查询缓存=》 sql层:处理优化的sql语句,有自己的执行计划
先判断sql的语句类型(query,dml【update,insert,delete】,ddl【alter】修改表的语句),rep,status 查询表的状态如果是query类型,判断是否开启缓存,命中缓存 ,直接返回缓存没有命中缓存,解析器会把sql分成令牌
语法解析器:根据得到的令牌组装成对应的解析数据结构 =》where条件
优化器:根据得到的解析树=》选择合适的执行计划
获取表的结构根据解析树过滤=》过滤没意义的查询 where 1=1判断查询计划