mariadb 没有mysql_mariaDB没有缓存mysql缓存的查询

我正在将我的数据库(MySQL 5.1.73)迁移到新服务器,我正在尝试用mariadb(5.5.5-10)替换它.全局mariadb似乎要快得多,但有一些查询拒绝缓存mysql所在的位置.

这是一个很大的问题,因为这些查询使用很多(主页上有一些类型,所以每次用户交互时都会执行这些查询).

我以为mariadb是mysql的替代品,所以我对这种行为感到惊讶?任何人都知道为什么这样的不同行为或如何强制使用缓存(我尝试了SELECT SQL_CACHE,但这并没有改变任何东西.

这是mysql配置

+------------------------------+------------+

| Variable_name | Value |

+------------------------------+------------+

| binlog_cache_size | 32768 |

| have_query_cache | YES |

| key_cache_age_threshold | 300 |

| key_cache_block_size | 1024 |

| key_cache_division_limit | 100 |

| max_binlog_cache_size | 4294963200 |

| query_cache_limit | 1048576 |

| query_cache_min_res_unit | 4096 |

| query_cache_size | 16777216 |

| query_cache_type | ON |

| query_cache_wlock_invalidate | OFF |

| table_definition_cache | 256 |

| table_open_cache | 64 |

| thread_cache_size | 8 |

+------------------------------+------------+

和mariadb一个

+--------------------------------+----------------------+

| Variable_name | Value |

+--------------------------------+----------------------+

| aria_pagecache_age_threshold | 300 |

| aria_pagecache_buffer_size | 134217728 |

| aria_pagecache_division_limit | 100 |

| aria_pagecache_file_hash_size | 512 |

| binlog_cache_size | 32768 |

| binlog_stmt_cache_size | 32768 |

| have_query_cache | YES |

| host_cache_size | 228 |

| innodb_disable_sort_file_cache | OFF |

| innodb_ft_cache_size | 8000000 |

| innodb_ft_result_cache_limit | 2000000000 |

| innodb_ft_total_cache_size | 640000000 |

| join_cache_level | 2 |

| key_cache_age_threshold | 300 |

| key_cache_block_size | 1024 |

| key_cache_division_limit | 100 |

| key_cache_file_hash_size | 512 |

| key_cache_segments | 0 |

| max_binlog_cache_size | 18446744073709547520 |

| max_binlog_stmt_cache_size | 18446744073709547520 |

| metadata_locks_cache_size | 1024 |

| query_cache_limit | 1048576 |

| query_cache_min_res_unit | 4096 |

| query_cache_size | 16777216 |

| query_cache_strip_comments | OFF |

| query_cache_type | ON |

| query_cache_wlock_invalidate | OFF |

| stored_program_cache | 256 |

| table_definition_cache | 400 |

| table_open_cache | 400 |

| thread_cache_size | 100 |

+--------------------------------+----------------------+

解决方法:

有许多不同的“缓存”;并非所有人都在他们的名字中“缓存”.最重要的是innodb_buffer_pool_size.只有当您使用InnoDB(您应该使用)而不是MyISAM时,这一个才是重要的.此外,升级过程中各个表的引擎是否已更改?

检查表Engines和buffer_pool_size,然后报告回来.顺便说一句,buffer_pool应该是可用内存的70%左右.并向我们​​展示非缓存查询以及SHOW CREATE TABLE.

我看到Query缓存的设置方式相同.但是,这通常对活动的生产服务器不利.但这是另一个话题.

“放弃替代” – 主要是.但是,正如你所发现的,它在某些方面“更快”,在其他方面“更慢”.即使您从MySQL 5.1迁移到MySQL 5.5,您可能会看到类似的更好/更糟的情况.

标签:mysql,mariadb,mysql-5-5,query-cache

来源: https://codeday.me/bug/20190806/1604712.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值