慢速查询挂起服务器

xam8gpfp  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(303)

我得到我的网站和服务器的人告诉它的问题,因为mysql查询速度慢。我的网站是在wordpress的cms。下面是产生问题的查询。我不确定这个查询何时运行。我的数据库中有超过70000个用户。


# Query_time: 1078.445935  Lock_time: 0.000236 Rows_sent: 59  Rows_examined: 379721873

SET timestamp=1538539120;
SELECT DISTINCT wp_users.ID FROM wp_users LEFT JOIN wp_usermeta ON ( wp_users.ID = wp_usermeta.user_id )  LEFT JOIN wp_usermeta AS mt1 ON ( wp_users.ID = mt1.user_id )  LEFT JOIN wp_usermeta AS mt2 ON ( wp_users.ID = mt2.user_id )  LEFT JOIN wp_usermeta AS mt3 ON (wp_users.ID = mt3.user_id AND mt3.meta_key = 'wpseo_noindex_author' ) WHERE 1=1 AND wp_users.ID IN ( SELECT DISTINCT wp_posts.post_author FROM wp_posts WHERE wp_posts.post_status = 'publish' AND wp_posts.post_type IN ( 'post', 'page', 'attachment', 'static-block' ) ) AND ( 
  wp_usermeta.meta_key = '_yoast_wpseo_profile_updated' 
  AND 
  ( 
    ( mt1.meta_key = 'wp_user_level' AND mt1.meta_value != '0' ) 
    AND 
    ( 
      ( mt2.meta_key = 'wpseo_noindex_author' AND mt2.meta_value != 'on' ) 
      OR 
      mt3.user_id IS NULL
    )
  )
) ORDER BY wp_usermeta.meta_value+0 

DESC;
w1jd8yoj

w1jd8yoj1#

yoast搜索引擎优化https://wordpress.org/plugins/wordpress-seo/ 插件问题,sql查询。它不是为这么多的用户而设计的,而且它是sql查询所不期望的。
当然,最干净的解决方案是不要将该插件用于此类网站。
当情况危急时,你不能关闭它-当然有一些黑客可能解决这个问题,或者修改代码。
它是从 class-author-sitemap-provider.php 文件,获取用户方法。现在它会通过你所有的帖子,然后查询曾经发布过帖子的用户。你可以试着 $defaults['has_published_posts'] = true; 进入 false 至少从查询中排除posts表。正在删除 meta_query 参数将使查询更加简单。但所有这些都是肮脏的黑客,当然会影响功能。

相关问题