网站首页 > 技术文章 正文
MySQL 查询缓存存储经常和最近运行的查询的查询结果,因此它们可以快速返回,而无需从头开始处理所有内容。 它们在提高查询速度和数据库性能方面非常有用。 以下是为您的数据库启用 MySQL 查询缓存、设置 MySQL 缓存大小和禁用查询缓存的步骤。 请注意,MySQL 查询缓存已在 MySQL 5.7 中弃用,并在 MySQL 8.0 中删除。
如何启用 MySQL 查询缓存
这是您的数据库的 MySQL 查询缓存配置。
1. 检查可用性
登录 MySQL 并运行以下命令以检查 MySQL 查询缓存是否可用于您的数据库。
mysql> SHOW VARIABLES LIKE 'have_query_cache';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| have_query_cache | YES |
+------------------+-------+
如果结果为 YES,则表示您的数据库支持查询缓存。
2. 默认查询缓存变量
MySQL 查询缓存由许多变量控制。 在更改它们之前,先运行以下命令以查看它们的默认值。
mysql> show variables like 'query_cache_%' ;
您将看到以下输出
+---------------------------------------+----------+
| Variable_name | Value |
+---------------------------------------+----------+
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 16777216 |
| query_cache_type | OFF |
| query_cache_wlock_invalidate | OFF |
+---------------------------------------+----------+
让我们看看上面的查询缓存变量,
- query_cache_limit – 可以缓存的查询结果的最大大小
- query_cache_min_res_result – MySQL 将查询结果存储在块中。 这是每个块的最小大小。
- query_cache_size – 表示为 MySQL 缓存分配的内存总量。
- query_cache_type – 将此设置为 0 或 OFF 将禁用 MySQL 查询缓存。 将其设置为 1 启用查询缓存。
- query_cache_wlock_invalidate – 如果底层表被锁定,确定 MySQL 是否应该从缓存中获取结果。
3. 启用 MySQL 查询缓存
退出MySQL。 打开终端并运行以下命令打开MySQL配置文件。
$ sudo vi /etc/mysql/my.cnf
在 [mysqld] 部分下面添加以下几行
...
[mysqld]
query_cache_type=1
query_cache_size = 10M
query_cache_limit=256K
我们通过将 query_cache_type 变量设置为 1 来启用查询缓存,单个查询缓存为 256Kb,总缓存为 10Mb。 您可以根据需要更改 query_cache_size 和 query_cache_limit 的值。
4. 重启 MySQL 数据库
重新启动 MySQL 来应用更改生效
$ sudo systemctl restart mysql
或
$ sudo service mysql restart
或
$ sudo /etc/init.d/mysql restart
希望本文能帮助您配置 MySQL 查询缓存。
猜你喜欢
- 2024-10-20 如何在 CentOS7 下改造MySQL开机启动服务?
- 2024-10-20 MySQL日志篇(mysql的日志文件在哪里)
- 2024-10-20 如何快速定位MySQL 的错误日志(Error Log)?
- 2024-10-20 小白自学MySQL笔记(一):Mac环境的安装和启动
- 2024-10-20 MySQL执行计划主要通过EXPLAIN命令来查看
- 2024-10-20 MySQL service启动脚本浅析(r12笔记第59天)
- 2024-10-20 借助shell脚本,解决MySQL服务自动停止的问题
- 2024-10-20 MySQL 还在跑任务时,突然断电,数据库崩了又好像没崩……
- 2024-10-20 超详细的mysql数据库查询缓存总结,值得收藏
- 2024-10-20 一文看懂mysql数据库本质及存储引擎innodb+myisam
- 1517℃桌面软件开发新体验!用 Blazor Hybrid 打造简洁高效的视频处理工具
- 594℃Dify工具使用全场景:dify-sandbox沙盒的原理(源码篇·第2期)
- 521℃MySQL service启动脚本浅析(r12笔记第59天)
- 489℃服务器异常重启,导致mysql启动失败,问题解决过程记录
- 489℃启用MySQL查询缓存(mysql8.0查询缓存)
- 477℃「赵强老师」MySQL的闪回(赵强iso是哪个大学毕业的)
- 456℃mysql服务怎么启动和关闭?(mysql服务怎么启动和关闭)
- 454℃MySQL server PID file could not be found!失败
- 最近发表
-
- PS所有滤镜的说明(六)(ps滤镜详解)
- 5款小白也能用的在线图片编辑器!电商效率飙升就靠它!
- Java变量(java变量有什么作用)
- Java面试常见问题:Java注解(java中的面试题)
- Java编程入门第一课:HelloWorld(java编程从入门到实践)
- Java基础教程:Java继承概述(java里继承的概述)
- java基础之——访问修饰符(private/default/protected/public)
- 如何规划一个合理的JAVA项目工程结构
- 将机器指令翻译成 JavaScript -- 终极目标
- Web 服务器基准测试:Go vs. Node.js vs. Nim vs. Bun
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (81)
- es6includes (73)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- c++int转char (75)
- static函数和普通函数 (76)
- el-date-picker开始日期早于结束日期 (70)
- js判断是否是json字符串 (67)
- checkout-b (67)
- c语言min函数头文件 (68)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)