现在MySQL默认查询缓存被禁用了,我记得很久以前,运行WordPress时MySQL的命中率很高。
所以我在想,如果现在启用它将提高性能,有人尝试过吗?
现在MySQL默认查询缓存被禁用了,我记得很久以前,运行WordPress时MySQL的命中率很高。
所以我在想,如果现在启用它将提高性能,有人尝试过吗?
一般来说,对于只读应用程序(在MySQL 5.7之前,它从8.0版开始就被弃用),它支持SELECT
如果缓存中已经存储了相同的调用,则可以非常快地返回数据。您应该考虑:
只有完全相同的子句才能从缓存引擎中受益(没有空格,没有注释,在WHERE
表达式)Excellent alternatives are:
外部缓存引擎(即。Memecached 或Redis, 我的最爱,https://redislabs.com/wp-content/uploads/2016/03/15-Reasons-Caching-is-best-with-Redis-RedisLabs-1.pdf)
据我所知,这些也是目前最好的做法,但我可能忽略了一些东西,请分享以防万一。
MySQL的查询缓存从来都不是很好,从8.0版起就已经退役了,因此,如果你想用WordPress优化数据库性能,那就不是好办法。然而,WP确实有膨胀数据库的趋势。有几种方法可以防止这种情况发生。
将您的帖子修改限制为2次,包括define( ‘WP_POST_REVISIONS’, 2 );
在里面wp-config.php
. 或同时停止修订define( ‘WP_POST_REVISIONS’, false );
在phpMyAdmin中,可以使用删除现有修订DELETE FROM wp_posts WHERE post_type = "revision";
.plenty of plugins 这将帮助你清理这些东西Query Monitor 识别慢速查询的插件。主题中糟糕的脚本可能是导致数据库运行缓慢的罪魁祸首,而缓存也无济于事
我正在将wordpress站点从QTranslate-X迁移到WPML(2个多语言插件)。在迁移过程中,我所有属于给定类别(英语中为Health,法语中为sain)的帖子都正确地用英语分配,但法语中的链接丢失了。我编写了一个SQL脚本,从属于健康类别的英语帖子中确定法语帖子ID的列表。这给了我一个ID列表(101102…)。然后,我继续运行以下INSERT语句(第一个数字是对象ID,也称为post ID,第二个数字是类别ID,最后一个数字是给定对象的顺序)。这一点描述得很好here:INSERT INTO