wordpress - Wordpress,WooCommerce - 保存产品非常慢
问题描述
某些产品的保存速度极慢(30 秒)
这是分析器的屏幕截图:
我在mysql中打开慢查询日志,发现这个查询:
SELECT COUNT( DISTINCT ID )
FROM wpmf_posts p
LEFT JOIN (
SELECT object_id
FROM wpmf_term_relationships
WHERE term_taxonomy_id
IN ( 7 )
) AS exclude_join ON exclude_join.object_id = p.ID
INNER JOIN (
SELECT object_id
FROM wpmf_term_relationships
INNER JOIN wpmf_term_taxonomy
USING ( term_taxonomy_id )
WHERE term_id
IN ( 4246, 4247, 4254, 4257, 4263, 4280, 4290, 4335, 4375, 4397, 4486, 5114 )
) AS include_join ON include_join.object_id = p.ID
WHERE 1 =1
AND p.post_status = 'publish'
AND p.post_type = 'product'
AND exclude_join.object_id IS NULL
LIMIT 0 , 30
返回 4799,需要 27 秒:
# Time: 190127 8:38:29
# User@Host: lfytcoil_uprdb[lfytcoil_uprdb] @ localhost []
# Query_time: 27.287704 Lock_time: 0.000076 Rows_sent: 1 Rows_examined: 483196982
知道这个查询的目的是什么吗?
这是wpmf_term_taxonomy
带身份证的
product_visibility
节目count
31234
这是一个拥有 10717 种产品的 WooCommerce 网站,
我怀疑 WooCommerce 需要处理的产品太多了。
注意:运行delete FROM
wpmf_term_relationships where
term_taxonomy_id= 7
删除 31234 后,保存只需 2 秒我的问题:
WooCommerce 不能处理 10717 产品吗?
有没有办法以某种方式改进
save
?例如通过禁用此查询?还是通过缓存结果?或改进数据库结构?或者安装一些智能模块?我注意到对 的调用
wp_update_term_count
,似乎如果我禁用此调用,那么问题将得到解决,这可能是什么副作用?
解决方案
解决方案在这个问题中解释:
https://github.com/woocommerce/woocommerce/issues/14900
你应该替换文件includes/wc-term-functions.php
有了这个:
推荐阅读
- android - Xamarin.android 未从 Play 商店中的生产加载
- python - time.sleep、Flask 和 I/O 等待
- html - 我有两个重叠的 div
- angular - 在业力测试运行期间从编译中排除文件
- bash - 如何使用 cat 小写 bash 中的大文件?
- c# - SSIS 导入多个文件并创建表
- powershell - PowerShell Active Directory 导入脚本在 PS 3.0 或更高版本中失败
- django - 如何在 React App 中实现消息通知?
- react-native - React Native Button:适合文本布局
- scala - 使用 Spark collectionAccumulator 时出现 ConcurrentModificationException