一条SQL查询语句是如何执行的?( 七 )
如果语句不在查询缓存中 , 就会继续后面的执行阶段 。 执行完成后 , 执行结果会被存入查询缓存中 。 你可以看到 , 如果查询命中缓存 , MySQL 不需要执行后面的复杂操作 , 就可以直接返回结果 , 这个效率会很高 。
但是大多数情况下我会建议你不要使用查询缓存 , 为什么呢?因为查询缓存往往弊大于利 。
查询缓存的失效非常频繁 , 只要有对一个表的更新 , 这个表上所有的查询缓存都会被清空 。 因此很可能你费劲地把结果存起来 , 还没使用呢 , 就被一个更新全清空了 。 对于更新压力大的数据库来说 , 查询缓存的命中率会非常低 。 除非你的业务就是有一张静态表 , 很长时间才会更新一次 。 比如 , 一个系统配置表 , 那这张表上的查询才适合使用查询缓存 。
好在 MySQL 也提供了这种“按需使用”的方式 。 你可以将参数 query_cache_type 设置成 DEMAND , 这样对于默认的 SQL 语句都不使用查询缓存 。 而对于你确定要使用查询缓存的语句 , 可以用 SQL_CACHE 显式指定 , 像下面这个语句一样:
mysql> select SQL_CACHE * from T where ID=10;
推荐阅读
- Uzi|LOL近年来两大转会假新闻!一条比一条离谱好笑
- 手机游戏|DNF关服了会有什么补偿?玩家讨论出四种可能,最后一条最靠谱
- 一条小团团|瘦身成功的小团团,只打算邀女粉庆生,结果多了8个男粉
- 一条小团团|网红「一条小团团」不惧恶评!大方露脸,发布视频!自称:从未被认出过
- 梦幻西游|梦幻西游:翻出一条10级双蓝字腰带,引来土豪哄抢,价值飙升10亿
- 超激斗梦境|《超激斗梦境》人物每一条属性介绍
- 一条小团团|鱼死网破?小团团发文暗示被背锅,公会的问题和她没关系
- 一条小团团|虎牙法神带小团团开黑,振刀成功后,小团团激动:我负责捡武器
- 云顶之弈|云顶之弈:开局三龙族,是天赐还是陷阱?不要一条道走到黑!
- 打野|新版本T0刺客突然诞生,出名刀可以再获得一条命,天克百里玄策!