mysql处理查询请求的步骤

  服务端处理客户端的查询请求大致需要三个步骤:

  1.   连接管理
    1.   客户端连接服务端时,服务端会为其分配一个线程,客户端断开连接不会回收线程(避免频繁创建销毁的性能问题),服务端一直等待客户端发来消息(文本消息)
  2.   解析与优化
    1. 查询缓存(mysql8.0之后删除了查询缓存)
      1. mysql处理查询请求的时候会把结果缓存,不缓存的情况有(1,任何字符的不同2,调用了系统函数 自定义函数/变量3,使用了系统表)
      2. 缓存失效:对表的结构和数据进行了修改之后,缓存会失效,并从高速缓存删除
    2. 语法解析
      1. 对文本进行解析校验语法
    3. 查询优化
      1. 对我们的语句进行一些优化,生成一个执行计划使用哪些索引,表的连接顺序等等
  3.   存储引擎
    1. 在完成了查询优化之后,只需按照执行计划调用底层存储引擎提供的api,返回数据给客户端即可
posted @ 2020-11-09 15:52  rudynan  阅读(166)  评论(0编辑  收藏  举报