Wordpress DB查询太慢了

时间:2017-10-03 14:15:32

标签: mysql wordpress performance query-performance

自上周三以来,由于MySQL查询,我的网站出现了大量性能问题......

在DB中,我有20.000个帖子和大约180.000个元行。

查询如下:

SELECT t.*, tt.*, tr.object_id
FROM az2_terms AS t 
INNER JOIN az2_term_taxonomy AS tt
ON t.term_id = tt.term_id
INNER JOIN az2_term_relationships AS tr
ON tr.term_taxonomy_id = tt.term_taxonomy_id
WHERE tt.taxonomy IN ('znacka', 'model')
AND tr.object_id IN (27130, 27290, 27822, 27899, 30862, 33536, 33721, 34901, 37448, 37482, 37496, 37522, 37572, 37580, 37742, 37750, 38160, 38165)
ORDER BY t.name ASC

需要将近20秒才能完成,这使得网站完全无法使用。 我已经禁用了所有WP插件,更改了主题,但没有任何帮助。

我已尝试在MyAdmin中进行分析,第一次运行需要近20秒,第二次运行几乎是即时的。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

要尝试两件事。

首先,根据您的az2_term_taxonomy条款,您的"驾驶" 表格为WHERE。尝试重写:

SELECT t.*, tt.*, tr.object_id
FROM az2_term_taxonomy AS tt
INNER JOIN az2_term_relationships AS tr
ON tr.term_taxonomy_id = tt.term_taxonomy_id
INNER JOIN az2_terms AS t  
ON t.term_id = tt.term_id
WHERE tt.taxonomy IN ('znacka', 'model')
AND tr.object_id IN (27130, 27290, 27822, 27899, 30862, 33536, 33721, 34901, 37448, 37482, 37496, 37522, 37572, 37580, 37742, 37750, 38160, 38165)
ORDER BY t.name ASC

其次,使用tr.object_id进行IN ()查询通常非常慢。 如果,您可以创建索引临时表并将这些ID移动到表中并对其执行LEFT JOIN。如果你想要语法

,请告诉我

答案 1 :(得分:0)

我找到了解决方案......好吧 - 至少是问题。

当我切换到HTTPS时,导入编辑的.sql文件时出现了一些错误(重复索引,我认为) 但是一切似乎都很好,所以我没注意它。

但似乎导入是问题。我删除了数据库并导入了备份 - violá,现在一切都很好。

道德是 - 关注错误信息。