什么是正确的方式,使查询缓存?

问题描述 投票:1回答:3

基于该documentation,超级特权不被支持,这意味着下面的查询:

SET GLOBAL query_cache_size = 1000000;

导致错误消息

拒绝访问;你需要(至少一个)SUPER权限(个),此操作

并不允许我们设置查询缓存大小。

什么是完成任务所需的正确方法是什么?

google-cloud-sql
3个回答
2
投票

不幸的是,云SQL不支持查询缓存和query_cache_size变量不能设置。

如果您遇到性能问题,则可以尝试更改您的实例层给予更多的资源,您的实例访问。此外,优选的是使用InnoDB超过MyISAM表。这样做的原因是因为当云SQL实例启动时,它给大部分可用内存的InnoDB缓冲池。


1
投票

作为mhalt暗示,有一个很好的理由不使用查询缓存:

  • 你应该使用的是InnoDB,而不是MyISAM数据,为的MyISAM是不是云环境中足够强大。
  • InnoDB的已建成高速缓存作为其一部分的缓冲池。该缓存数据的单个页面,而不是整个结果集。
  • 缓冲池通常提供优异的缓存来查询缓存:1)它不会冲洗写后2)的多个不同的查询可以使用3)它支持部分缓存如果活动组大于可用RAM较大相同的高速缓存条目来服务。
  • 其中,查询缓存优于唯一的工作量,如果你有一个非常低的写入速度,几乎所有的疑问都完全一样。
  • 出于这个原因,云SQL通过最大化分配给缓冲池RAM,而不是有查询缓存优化。

0
投票

CLOUDSQL现在支持query_cache标志。

https://cloud.google.com/sql/docs/mysql/flags

但是,这些选项may break the SLA coverage

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.