使用高级自定义字段时最大限度地减少页面上的查询数量

时间:2012-10-16 作者:Ollie

我目前正在一个广泛使用流行Advanced Custom Fields 插件。然而,因此页面加载时间可能非常慢,尤其是在使用Gallery插件时。

有人对管理大量自定义字段的最佳做法有什么建议吗?在某些情况下,我可以有效地处理数千个变量,并且需要减少页面加载时间(某些情况下约为5秒)。

我知道这是一个相当开放的问题,但如果能就如何最大限度地减少页面中的查询数量提出一些建议(比如通过直接访问数据库中的值,而不是依赖插件的API),那将是一件非常棒的事。

3 个回复
最合适的回答,由SO网友:Rarst 整理而成

性能优化并不是在真空中真正起作用的,它需要亲自分析并寻找实际的瓶颈(这往往与感知的瓶颈不同)。

但一般来说,有几种方法可以满足大量数据库数据的需要:

优化从数据库提取,例如通过将多个请求连接到检索单个更大的数据集。

安装持久对象缓存并将数据保留在内存中,以加快周转速度。

缓存生成的计算或标记片段,以减少检索它们的频率,并可能使其与实际页面加载异步。

SO网友:s_ha_dum

然而,这几乎是异端邪说,但是,如果您希望使用非常大和复杂的日期集进行非常高效的查询,“直接访问数据库中的值……而不是依赖插件的API”,这几乎肯定是可行的。

我不知道具体的插件有什么问题,但坦率地说,插件往往效率非常低。WordPress本身也有相当大的缺陷,因为它自己的一些核心功能效率低下,而另一个公平的块不够灵活,无法允许各种查询/更改,从而达到我想要的效率。这反过来又迫使插件作者要么违背强烈鼓励的“使用核心功能”规则,要么使用效率较低的机制。我相信这会影响你把东西放到wordpress上的能力。组织回购。我不是真的服从回购协议,所以我对规则不是很熟悉,但我知道有规则。

另一方面,“直接访问数据库中的值”意味着插件需要更多的维护,因为您将跟踪WordPress数据库结构的变化。

SO网友:Maija Vilkina

如果不了解您的具体情况,就很难提出任何具体的建议,但每当我被一个毫无理由的网站拖得太慢时,我都会安装查询监视器插件(https://wordpress.org/plugins/query-monitor/) 仔细看看它说了什么。

我广泛使用高级自定义字段,通常情况下,错误不在于插件本身,而在于以下事项之一:

复杂的get_postsWP_Query 具有多个和/或嵌套的查询\'tax_query\'\'meta_query\' 参数。在最近添加的阵列中嵌套多个阵列的能力实际上没有帮助。根本没有https://wordpress.org/plugins/lazy-load/) 是一个很好的插件,或者您可以编写自己的ajax调用

希望有帮助。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post

使用高级自定义字段时最大限度地减少页面上的查询数量 - 小码农CODE - 行之有效找到问题解决它

使用高级自定义字段时最大限度地减少页面上的查询数量

时间:2012-10-16 作者:Ollie

我目前正在一个广泛使用流行Advanced Custom Fields 插件。然而,因此页面加载时间可能非常慢,尤其是在使用Gallery插件时。

有人对管理大量自定义字段的最佳做法有什么建议吗?在某些情况下,我可以有效地处理数千个变量,并且需要减少页面加载时间(某些情况下约为5秒)。

我知道这是一个相当开放的问题,但如果能就如何最大限度地减少页面中的查询数量提出一些建议(比如通过直接访问数据库中的值,而不是依赖插件的API),那将是一件非常棒的事。

3 个回复
最合适的回答,由SO网友:Rarst 整理而成

性能优化并不是在真空中真正起作用的,它需要亲自分析并寻找实际的瓶颈(这往往与感知的瓶颈不同)。

但一般来说,有几种方法可以满足大量数据库数据的需要:

优化从数据库提取,例如通过将多个请求连接到检索单个更大的数据集。

安装持久对象缓存并将数据保留在内存中,以加快周转速度。

缓存生成的计算或标记片段,以减少检索它们的频率,并可能使其与实际页面加载异步。

SO网友:s_ha_dum

然而,这几乎是异端邪说,但是,如果您希望使用非常大和复杂的日期集进行非常高效的查询,“直接访问数据库中的值……而不是依赖插件的API”,这几乎肯定是可行的。

我不知道具体的插件有什么问题,但坦率地说,插件往往效率非常低。WordPress本身也有相当大的缺陷,因为它自己的一些核心功能效率低下,而另一个公平的块不够灵活,无法允许各种查询/更改,从而达到我想要的效率。这反过来又迫使插件作者要么违背强烈鼓励的“使用核心功能”规则,要么使用效率较低的机制。我相信这会影响你把东西放到wordpress上的能力。组织回购。我不是真的服从回购协议,所以我对规则不是很熟悉,但我知道有规则。

另一方面,“直接访问数据库中的值”意味着插件需要更多的维护,因为您将跟踪WordPress数据库结构的变化。

SO网友:Maija Vilkina

如果不了解您的具体情况,就很难提出任何具体的建议,但每当我被一个毫无理由的网站拖得太慢时,我都会安装查询监视器插件(https://wordpress.org/plugins/query-monitor/) 仔细看看它说了什么。

我广泛使用高级自定义字段,通常情况下,错误不在于插件本身,而在于以下事项之一:

复杂的get_postsWP_Query 具有多个和/或嵌套的查询\'tax_query\'\'meta_query\' 参数。在最近添加的阵列中嵌套多个阵列的能力实际上没有帮助。根本没有https://wordpress.org/plugins/lazy-load/) 是一个很好的插件,或者您可以编写自己的ajax调用

希望有帮助。

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post