MySQL缓存

MySQL缓存机制即缓存sql 文本及缓存结果,用Key-Value形式保存再服务器内存中,如果运行相同的sql,服务器直接从缓存中去获取结果,不需要再去解析、优化、执行sql,可以大大提高查询的性能

参数设置

(1) have_query_cache表示是否支持查询缓存,YES表示支持

(2) query_cache_type表示缓存类型,OFF表示关闭查询缓存,ON表示开启查询缓存,DEMAND表示用户自定 义查询缓存

查询缓存使用

(1) 只有字符串相等查询sql才使用相同缓存,即select name from city与SELECT name FROM city不使用同一 个缓存

(2) 在query_cache_type为ON的情况下,默认所有查询都使用缓存

我们可以使用sql_no_cache显示指定某个查询不使用缓存select sql_no_cache name from city;

(3) 在query_cache_type为DEMAND的情况下

需要使用sql_cache指定某个查询使用缓存select sql_cache name from city;

MySQL缓存失效

  • 在表的结构或数据发生改变时,查询缓存中的数据不再有效,查询缓存值的相关条目将被清空

  • INSERT、UPDATE、 DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE会导致缓存数据失效

工作流程

  1. 服务器接收SQL,以SQL、数据库名和客户端协议等作为key查找缓存表

  2. 如果缓存命中,则直接返回缓存

  3. 如果缓存没有命中,则执行SQL查询,包括SQL解析、优化等。

  4. 执行完SQL查询结果以后,将SQL查询结果写入缓存表

使用场景

  • 对于频繁更新的表,查询缓存不合适

  • 对于一些不变的数据且有大量相同sql查询的表,查询缓存可以大大提高查询的性能

posted @   上好佳28  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示