最近,我从标准 MySQL 迁移到Percona
.,并使用Percona Wizard生成my.cnf
.
但是,我可以看到,默认情况下,生成的设置my.cnf
使用query_cache_type = 0
. (查询缓存被禁用)。
我在服务器上运行的唯一东西是一个 Wordpress 博客。我的问题是:
- 我可以启用查询缓存吗?
- 有一些提供数据库缓存的 Wordpress 插件。结果是否类似于启用查询缓存?
最近,我从标准 MySQL 迁移到Percona
.,并使用Percona Wizard生成my.cnf
.
但是,我可以看到,默认情况下,生成的设置my.cnf
使用query_cache_type = 0
. (查询缓存被禁用)。
我在服务器上运行的唯一东西是一个 Wordpress 博客。我的问题是:
对于 Wordpress 博客,设置
query_cache_type = 1
. 看,查询缓存的主要问题是:它很容易失效(对某些表的任何更新都会使与该表相关的所有查询失效)
它有一个互斥体,任何传入或传出查询都必须通过该互斥体。
在机器只有一个核心的时代,查询缓存很好,也许两个;它不适合多核和高并发,也不适合写密集型应用程序。
您的 Wordpress 博客不太可能是写作密集型的:您的文章是新帖子、更新、评论……其中有多少?您甚至可能无法按每分钟对抗它们...
它实际上也不会被密集阅读。每天数百次阅读 数千次?没什么。
关于插件,这在很大程度上取决于插件和您的部署。Wordpress 是用 PHP 编写的,PHP 可能会使用文件系统、memcached 或 APC 等缓存机制。对于它所面向的特定目的,它通常应该是“更好”的缓存。也就是说,它将基于对相关数据的实际更改使缓存数据无效——而不是针对某些表上的不相关操作。插件的程序员需要决定哪些数据对缓存很重要,哪些不是,失效如何工作。
同样,在博客的规模上,这没什么大不了的,也不应该产生重大影响(当然总会有一些疯狂的插件)。
底线:根据您的需要,任何事情都会发生,这并不重要。
这取决于您的数据库类型。如果使用 InnoDB,则不需要查询缓存。此外,查询缓存会损害整体性能的速度。因此,如果您将 MyISAM 用于 wordpress,则应该使用它。