• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

的WordPress:LEFT JOIN PHP的MySQL很慢

php 来源:Mohammad 3次浏览

我使用此代码上岗的WordPress:LEFT JOIN PHP的MySQL很慢

$select = SELECT COUNT(DISTINCT wpPost.ID) 
      FROM `wp_posts` wpPost 
      RIGHT JOIN `wp_woocommerce_order_itemmeta` wpOrderItem 
      ON wpOrderItem.`meta_value`='6246' 
      WHERE wpPost.`post_status`='wc-completed' 
      GROUP BY wpPost.`ID` 
      ORDER BY wpPost.`post_date` DESC 
$wpdb->get_results("$select"); 
echo $wpdb->num_rows; 

的SELECT COUNT但这个代码是非常缓慢的,很长一段时间约40秒!

wp_woocommerce_order_itemmeta有388116条记录

===========解决方案如下:

原因之一DISTINCT应使用只有在绝对必要的 结果集必须按顺序找到并删除 进行排序复制

我不是确定为什么你的查询需要很长时间,但我有一个解决方法,通过从查询中删除不同的总和计数。

随意选择保留最小ID。另外,避免使用隐式连接语法。

您的查询应该是:

SELECT COUNT(wpPost.ID), MIN(wpPost.ID) 
FROM `wp_posts` wpPost 
RIGHT JOIN `wp_woocommerce_order_itemmeta` wpOrderItem 
ON wpOrderItem.`meta_value`='6246' 
WHERE wpPost.`post_status`='wc-completed' 
GROUP BY wpPost.`ID` 
ORDER BY wpPost.`post_date` DESC 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)