0

我正在尝试执行以下查询,但执行需要 12 秒。

SELECT t.*,
       tt.*
FROM   wp_terms AS t
       INNER JOIN wp_term_taxonomy AS tt
               ON t.term_id = tt.term_id
WHERE  tt.taxonomy IN ( 'category' )
ORDER  BY t.name ASC  

他们是否有任何方法可以简化查询以减少延迟以达到相同的结果。

4

5 回答 5

1

尝试在 term_id 上添加索引。

于 2013-07-10T13:18:13.553 回答
1

您可能会获得更好的性能 SELECT t.*, tt.* FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON t.term_id WHERE tt.taxonomy = 'category' ORDER BY t.name ASC

通过删除IN; 但除此之外 - 你的瓶颈将是JOIN. 确保您的表格已正确编入索引,如果它们太大......好吧,这需要时间。

于 2013-07-10T13:19:03.687 回答
0

您必须添加索引并使用 '=' 而不是 'IN'

于 2013-07-10T13:18:22.287 回答
0

您是否需要两个表中的所有数据,还是选择 t.* 和 tt.* 因为它的编码速度更快?

你能把你从陈述中选择的东西配对吗?

您也可以在语句中添加分组依据。这可以减少您的退货行数并提高性能。

于 2013-07-10T13:49:29.303 回答
-1

IN除非必须,否则不要使用。

WHERE tt.taxonomy = 'category'
于 2013-07-10T13:17:33.063 回答