它使用双嵌套子查询以下MySQL查询太慢嵌套子查询太慢
SELECT t.name
FROM creatives AS c
INNER JOIN term_relationships AS tr ON tr.creative_id=c.creative_id
INNER JOIN terms AS t ON t.term_id=tr.term_id
WHERE c.creative_id IN
(SELECT creative_id
FROM term_relationships
WHERE term_id IN
(SELECT offer_term_id
FROM offer_urls))
AND t.taxonomy LIKE 'ad_network';
内部查询
SELECT creative_id
FROM term_relationships
WHERE term_id IN
(SELECT offer_term_id
FROM offer_urls)
极快(0.04秒),
但完整的查询不会提供结果。等了5分钟后我放弃了。
任何方式来优化?
为什么不尝试'LEFT OUTER JOIN'和一个空检查呢?虽然下一个语句是纯粹的猜测,但我假设每个检索行都执行子查询(因此,行a,对所有行b执行子查询,它们针对所有行c单独执行)。 – Rogue
您的表格是否正确编制索引? –