标签: query-cache

为什么从 MySQL 5.6 开始默认禁用 query_cache_type?

我们已经升级到 MySQL 5.6 并且开始看到 db server 的负载显着增加,最后发现 query_cache_type从 5.6 开始默认为 off start。

我们再次启用它并看到负载减少,为什么从 MySQL 5.6 开始默认禁用此值?我在启用它时看不到问题。

mysql mysql-5 mysql-5.6 query-cache

27
推荐指数
2
解决办法
4万
查看次数

19
推荐指数
3
解决办法
1万
查看次数

Qcache_free_memory 未满但我得到了很多 Qcache_lowmem_prunes

我刚刚开始涉足我们的 CMS 的查询缓存。

谁能告诉我(或至少提供一个良好的猜测)为什么我得到了很多Qcache_lowmem_prunes时候有一半以上Qcache_free_memory是免费的吗?

query_cache_size=512M
query_cache_limit=1M
Run Code Online (Sandbox Code Playgroud)

这是大约 12 小时后的样子

show status like '%qcach%';
+-------------------------+-----------+
| Variable_name           | Value     |
+-------------------------+-----------+
| Qcache_free_blocks      | 10338     | 
| Qcache_free_memory      | 297348320 | 
| Qcache_hits             | 10254104  | 
| Qcache_inserts          | 6072945   | 
| Qcache_lowmem_prunes    | 725279    | 
| Qcache_not_cached       | 2237603   | 
| Qcache_queries_in_cache | 48119     | 
| Qcache_total_blocks     | 111346    | 
+-------------------------+-----------+
Run Code Online (Sandbox Code Playgroud)

这就是它的照顾方式flush query cache

show status like '%qcach%';
+-------------------------+-----------+
| Variable_name           | …
Run Code Online (Sandbox Code Playgroud)

mysql performance cache query-cache

11
推荐指数
1
解决办法
1万
查看次数

MySQL 查询缓存的最佳替代方案是什么?

MySQL 8 中删除了查询缓存。MySQL 中的查询缓存有更好的替代方案吗?

mysql query-cache mysql-8.0

9
推荐指数
2
解决办法
4895
查看次数

查询分析显示“正在等待查询缓存锁定”但 query_cache_size 为 0

我们有一个基于语句的复制服务器,它一直在减速,并且在事件期间SHOW FULL PROCESSLIST显示复制查询卡住了,"Waiting for query cache lock"这令人惊讶,因为服务器query_cache_size设置为0. 分析违规查询确实会在每次更新表时显示此步骤。

这是在配置文件中看到的典型更新,即使query_cache_size0?这真的只是检查查询缓存而不是等待获得真正锁的查询吗?

mysql replication query-cache

8
推荐指数
1
解决办法
1万
查看次数

当您执行两个相似但不相同的选择请求时,MySQL/InnoDB 缓存如何在内部工作?

我对 Innodb 缓冲池的工作方式有些困惑。

假设我有一个包含 15 条记录的表,如果我执行:select ... between 1 to 10那么该结果将缓存在缓冲区(?)中。我的问题是:如果我select .... between 1 to 15下次执行,那么它将如何获取记录。它是从缓冲区中选择 10 条记录,从磁盘中选择 5 条记录吗?

mysql innodb query-cache

5
推荐指数
1
解决办法
3243
查看次数

MariaDB 不缓存任何查询

我测试了几个简单的查询,如下所示:

SELECT COUNT(*) FROM Users WHERE courses='a';
Run Code Online (Sandbox Code Playgroud)

但没有一个被缓存。以下是缓存相关变量:

show variables like "%cache%";
+-------------------------------+----------------------+
| Variable_name                 | Value                |
+-------------------------------+----------------------+
| aria_pagecache_age_threshold  | 300                  |
| aria_pagecache_buffer_size    | 100000000            |
| aria_pagecache_division_limit | 100                  |
| binlog_cache_size             | 32768                |
| binlog_stmt_cache_size        | 32768                |
| have_query_cache              | YES                  |
| join_cache_level              | 2                    |
| key_cache_age_threshold       | 300                  |
| key_cache_block_size          | 1024                 |
| key_cache_division_limit      | 100                  |
| key_cache_segments            | 0                    |
| max_binlog_cache_size         | 18000000000000000000 |
| …
Run Code Online (Sandbox Code Playgroud)

mysql mariadb query-cache

3
推荐指数
1
解决办法
3515
查看次数

我可以告诉 MySQL 缓存什么吗?

很直接的问题:

假设我有一个我知道经常使用的特定查询,我可以告诉 MySQL 始终“自动”缓存它吗……即,一旦缓存的查询结果被刷新,mysqld立即再次运行该查询,以便为缓存数据做好准备下一个用户?

或者反过来:我可以告诉 MySQL 不缓存特定查询吗?其他缓存选项呢,不一定与查询相关?

我在网上搜索了这个,但找不到任何相关的东西。

mysql cache query-cache

3
推荐指数
1
解决办法
1462
查看次数

优化 MySQL query_cache_min_res_unit

我的查询缓存设置如下:

mysql> SHOW GLOBAL STATUS LIKE 'Q%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 2270     |
| Qcache_free_memory      | 6580864  |
| Qcache_hits             | 12802676 |
| Qcache_inserts          | 2094054  |
| Qcache_lowmem_prunes    | 111676   |
| Qcache_not_cached       | 137257   |
| Qcache_queries_in_cache | 7559     |
| Qcache_total_blocks     | 18240    |
| Queries                 | 15571718 |
| Questions               | 15571715 |
+-------------------------+----------+
Run Code Online (Sandbox Code Playgroud)

如您所见,我的 值相当高Qcache_lowmem_prunes,但我仍然有相当多的可用内存(总共 32MB 查询缓存大小中的 6MB)

我想看看是否可以进一步减少Qcache_lowmem_prunes.

我应该使用较低的值query_cache_min_res_unit吗?(现在是 4096)

mysql performance query-cache performance-tuning

2
推荐指数
1
解决办法
4238
查看次数