繁体   English   中英

我如何优化这个WordPress的MySQL查询?

[英]How can I optimize this wordpress mysql query?

我有一个mysql查询,它实际上使我的VPS停滞了。 它根据解释做一个文件排序扩展。 我通常会自行优化查询,但是我不确定我是否知道如何进行查询。

SELECT DISTINCT SQL_CALC_FOUND_ROWS wp_posts.*,MAX((1.00 * (MATCH(wp_search_post.post_content) AGAINST ('test' IN BOOLEAN MODE))) + (2.00 * (MATCH(wp_search_post.post_title) AGAINST ('test' IN BOOLEAN MODE))) + (1.00 * (MATCH(wp_search_post.post_excerpt) AGAINST ('test' IN BOOLEAN MODE))) + (1.00 * (MATCH(wp_search_post.post_meta) AGAINST ('test' IN BOOLEAN MODE))) + (2.00 * (MATCH(wp_search_post.post_tags) AGAINST ('test' IN BOOLEAN MODE)))) AS score FROM wp_posts LEFT JOIN wp_search_post ON wp_posts.ID=wp_search_post.post_id  WHERE 1=1 AND (wp_posts.post_status='publish' OR wp_posts.post_password='')  AND ((MATCH(wp_search_post.post_content,wp_search_post.post_title,wp_search_post.post_excerpt,wp_search_post.post_meta,wp_search_post.post_tags) AGAINST ('test' IN BOOLEAN MODE)))  GROUP BY wp_posts.ID HAVING score ORDER BY score DESC,wp_posts.post_date DESC LIMIT 60, 20;

任何帮助是极大的赞赏。

据我所知,具有全文索引的表存在一个SQL_CALC_FOUND_ROWS的已知问题。

我们的应用程序中有一个类似的问题,我们通过从查询中删除SQL_CALC_FOUND_ROWS来解决该问题,并发出了单独的计数查询以获取需要时找到的结果计数。

您也可以尝试一下,只需运行不带SQL_CALC_FOUND_ROWS的查询,看看它是否有所作为。

查看此链接以获取详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM