当前位置:首页 > 网络科技 > WordPress改进WP_Query性能,推荐安装memcached

WordPress改进WP_Query性能,推荐安装memcached

1年前 (2024-08-25)admin网络科技114

WordPress 6.1 版本对 WP_Query 类中数据库查询执行方式的优化,改进数据库的查询缓存。简而言之就是如果 WordPress 多次运行同一个数据库查询,结果将从缓存中加载,但前提是服务器安装的缓存插件。对于那些使用持久对象缓存的人来说,这意味着在缓存失效之前数据库查询不会再次运行,从而导致对数据库的查询少得多。

对于那些进行自定义开发的人,请确保您使用的是核心功能,例如 wp_insert_post 向数据库添加帖子。这些函数维护良好,通过使用它们,您可以确保缓存正确失效。如果您直接更新数据库,那么强烈建议您 clean_post_cache 在更新数据库行后调用该函数。

值得注意的是,默认情况下,所有对的调用都 WP_Query 将被缓存。可以通过简单地将 cache_results 参数传递为 来选择退出缓存查询 false。参见示例:

1
2
3
4
5
$args = array(
   'posts_per_page' => 50,
   'cache_results'  => false
);
$query = new WP_Query( $args );

也可以使用过滤器全局禁用缓存:

1
2
3
4
function disable_caching( $wp_query ) {
   $wp_query->query_vars['cache_results'] = false;
}
add_action( 'parse_query', 'disable_caching' );

像这样禁用缓存只应在极端情况下进行。clean_post_cache 为了获得最佳性能,强烈建议使用该函数 保持启用缓存并使缓存无效。

WordPress 6.1 引入了一个新功能,update_post_author_caches. 在 6.1 之前,具有多个作者的站点需要多个单一的数据库查询来获取作者信息,因为用户是作为循环的一部分加载的。update_post_author_caches 用户(作者)缓存现在不是一个一个地加载每个用户,而是通过在循环开始时 调用来在单个数据库调用中准备好,从而大大减少了数据库查询。

这个函数接受一个 post 对象数组,并将准备好用户缓存。update_post_author_caches 代码库的关键部分也添加了对的调用,以提高数据库性能。

WP_Query 是什么?

WP_Query 是一个 PHP 类,用于构造对 WordPress 数据库的查询并返回帖子、页面或其他自定义对象以在页面上呈现。它允许开发人员构建复杂的搜索,同时无需编写单独的 SQL 查询。

WP_Query 提供用于自定义循环的快捷方式和内置函数,循环是在给定页面上显示内容的过程。由于专注于 The Loop,WP_Query 是寻求自定义页面内容和外观的 WordPress 主题开发人员的首选。

为什么需要安装 memcached?

Memcached 是一个免费开源的、高性能的、具有分布式内存对象的缓存系统,它通过减轻数据库负载加速动态 Web 应用。

而 WordPress 想要使用 WP_Query 的高级缓存功能,服务器环境就需要配合安装 memcached 环境,并且还需要给对应的 PHP 安装 memcached 拓展,以及支持 memcached 的“object-cache.php”文件。

配置好 memcached 环境后,将 object-cache.php 文件(下载)放置到 WordPress 的“wp-content”目录中即可。

提示:切记在未安装好 memcached 环境后直接上传 object-cache.php 文件,否则会造成 WordPress 严重变慢的情况。

更多关于WordPress优化及疑问可以添加留言

w.haolusi.com

本文链接:https://w.haolusi.com/wordpress-improvements-wp_query.html

扫描二维码推送至手机访问。

版权声明:本文由豪鲁斯兴趣网发布,如需转载请注明出处。

本文链接:https://w.haolusi.com/?id=1613

标签: WordPress优化
分享给朋友:

“WordPress改进WP_Query性能,推荐安装memcached” 的相关文章

尽早觉醒:找到自己一人能做的互联网生意

尽早觉醒:找到自己一人能做的互联网生意

没有经历过裁员的职场是不完美的。无论何种原因经历次裁员,可能对心智都是一次提升,前面也写过技术人怎么利用空窗期的文章技术人的空窗期,你的涅槃重生。经历过裁员的时候难免感到复杂和沉重。离开的背后,不仅有情感的波动,还有对未来的深深焦虑。当你被通知离职的那一刻,情绪复杂得难以描述。但是,当冷静下来,你会...

百度正式下线“快速收录”功能,VIP可以申请“快速抓取”权限

百度正式下线“快速收录”功能,VIP可以申请“快速抓取”权限

最近可以说是站长们一片哀嚎,清明节前刚经历一次大的波动恢复没两天,让后百度又一次性的在清明节再次送走了,目前又开始缓慢的在恢复,但是似乎情况也并不是很妙。就在这时,百度搜索资源平台发布了一则“关于升级平台「快速收录」工具的通知”的公告,意思就是正式下线快速收录功能,换新上线一个叫做“快速抓取”的工具...

WordPress如何移除登录界面中英文语言切换框

WordPress如何移除登录界面中英文语言切换框

其实早在 WordPress 5.9 版本开始,WordPress 默认登录界面就增加了语言切换选项, 其目的就是允许用户自己选择要使用的语言登录后台。这个功能对于多语言网站或是国际性站点可能还有点用,但是对于国内用户来说就显得有些多余。最近子凡在做更深度的 WordPress 优化,同时也为了丰富...

最新免费可用!ChatGPT 4.0/4o/3.5 镜像 Mirror|免翻直链中文镜像(2024年8月更新)

最新免费可用!ChatGPT 4.0/4o/3.5 镜像 Mirror|免翻直链中文镜像(2024年8月更新)

本篇文章目录|Table of Contents Hide ChatGPT 4.0/4o/3.5 镜像站列表ChatGPT镜像更新历史什么是Cha...

最新可用!2024年Google谷歌镜像,Google学术镜像站(8月更新)

最新可用!2024年Google谷歌镜像,Google学术镜像站(8月更新)

本篇文章目录|Table of Contents Hide Google谷歌镜像-直接访问谷歌搜索01.Google谷歌搜索最新镜像入口02.Go...

MySQL如何选择utf8mb4_general_ci和utf8mb4_0900_ai_ci字符集排序规则

MySQL如何选择utf8mb4_general_ci和utf8mb4_0900_ai_ci字符集排序规则

最近在做一些关于新项目的规划和测试,那么既然是要做新的项目当然首先要考虑的就是最新的技术标准,也把开发环境都统一升级了一遍,而在做 MySQL 数据库创建的时候就发现了一个小小的变化,本着对技术的执着那么就不得不来一探究竟。正式生产环境本着稳定高于一切的宗旨,所以也就不太可能做到数据库方面的升级保持...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。