我有2个查询应该生成完全相同的结果集
首先查询:
SELECT *
FROM rms_tests where Id in (SELECT TestId
FROm rms_test_results
where RegressionResultID = 106967
and Failed is NULL);
第二次查询:
SELECT t.*
FROM rms_test_results tr
LEFT JOIN rms_tests t ON tr.testid=t.id
where tr.regressionresultId = 106967
and tr.failed is NULL;
然而,第二个需要0.008秒,而第一个永远不会完成并挂起我的“MySQL查询浏览器”#34;。
SQL如何评估类型1的查询导致它们爆炸并永久挂起浏览器。
注意:rms_test_results非常大,比rms_tests大很多倍。 另外你可以看到它们与rms_tests.id = rms_test_result.testid相关
很抱歉,如果这被覆盖在某处。
++++++++++++++++++++++++++++++++++++++++++++ PS 我真的很困惑,因为如果我将查询#1分解为其中两个并一个接一个地执行它们,它们就不会花费任何时间:
SELECT TestId FROm rms_test_results,其中RegressionResultID = 106967和Failed为NULL; SELECT * FROM rms_tests其中Id in(1234,1235,.....);