Reducing Database Query Time

时间:2018-07-02 作者:Chad Warren

在这里寻找一些建议。有一位客户已经在WooCommerce上工作了大约一年半。我们为他们建了一个新网站。

他们开始增加一条新的家具生产线。每个项目有700-800个产品变体组合。

由于从生产线中添加了大约8个新产品,当您在管理中查看产品列表时,加载需要花费很长时间。

如果您快速编辑一个产品,并说将其添加到第二个类别,然后单击“更新”,则完成查询平均需要10.2-10.8秒(根据查询监视器)。意识到有700-800个变体需要迭代,如果可以理解的话,可能需要更长的时间。

我已经恢复到2017主题,禁用了除woocommerce之外的所有插件,并再次测试。查询更新时间保持不变。

该站点位于运行CENT OS Intel Xeon E3-1270 v5四核及16GB RAM的专用服务器上

在wp配置中。php我设置了以下内容:

define(\'WP_MEMORY_LIMIT\', \'1024M\');
define( \'WP_MAX_MEMORY_LIMIT\', \'2000M\' );
在PHP中。ini配置我有以下内容:

max_execution_time 500
max_input_time 60
max_input_vars 10000
memory_limit 2000M
post_max_size 512M
我们正在运行MariaDB作为MySQL的dropin替代品

我不确定加快速度的方法是否是改变PHP中的设置。ini总体上增加了服务器上的RAM,将DB卸载到自己的服务器上,但是10.2秒更新一个产品是不可接受的,我需要找到一种方法来加快速度。

我很感激你的建议。。。

1 个回复
SO网友:Steve

虽然有特定的MySQL调优选项可用,当然还有将数据库移动到专用服务器的可能性;最终的问题是WooCommerce处理变化的方式。WooCommerce本身在创建变体时会警告性能的影响,您甚至需要在创建可变产品时确认您的选择。

因此,首先我要看看WooCommerce可用的各种产品定制器。它们中的大多数实际上并没有创建真正WooCommerce意义上的变体,因此该产品的MySQL开销通常要少得多。

其次,我将从数据规范化的角度来审查产品的变化。您能否以更好的结构呈现产品,以减少给定产品所需的变化数量?

通常我看到商店管理员往往会使产品过于复杂。如果他们销售的T恤既有男式的,也有女式的,有多种尺寸和颜色,他们往往会将其视为单一产品,这会产生太多的变化。

例如,一件T恤有(男式或女式)、尺码(小、中、大、XL)、颜色(红、蓝、绿)等多种颜色,可以创建一个具有24种排列/变体的单一产品。显示、更新或创建产品涉及25条不同的记录;父记录和各个记录。

创建两种不同的产品(即男式和女式)可将每个产品的总开销减少到仅13条记录。大大限制了每个产品的开销。

显然,这是一个非常简化的示例,但它确实演示了原理及其对性能的影响。

结束

相关推荐

how to read database fields

有人能解释一下如何读取wordpress数据库中的字母、数字和冒号吗?例如:a:1:{s:13:\"administrator\";b:1;} 在wp能力表中。谢谢