Myqsl的结构如下:

一条查询sql是如何执行的-读书笔记

连接器:负责进行鉴权,当进行数据库连接时,会进入连接器进行鉴权。

解析器:对sql进行解析,如果sql不准确,将会在这层抛出异常。如果开启了缓存,将进行缓存查询。

优化器:sql将会进行优化,比如确认join的链接顺序,有多个单列索引时,应该使用哪个。

执行器:执行脚本,如果没有设置默认是调用innodb引擎。

缓存:如果开启缓存,是以key-value的形式存储,key是执行的sql,value是data,但是要慎用缓存,因为缓存会频繁的写入数据,会导致缓存频繁刷新。缓存命中率会降低。

query_cache_type设置成DEMAND可以不使用缓存设置。sql使用SQL_CACHE可以直接使用缓存。mysql8.0直接去掉了缓存模块。

 

 

相关文章:

  • 2021-07-21
  • 2021-10-15
  • 2022-12-23
  • 2021-10-23
  • 2021-08-11
  • 2021-04-19
  • 2021-12-10
  • 2021-12-31
猜你喜欢
  • 2021-10-20
  • 2021-09-18
  • 2021-12-24
  • 2021-10-18
  • 2021-10-05
  • 2021-12-18
相关资源
相似解决方案