以下に2つのクエリがあります。
SELECT cl.`cl_boolean`, l.`l_name`
FROM `card_legality` cl
LEFT JOIN `legality` l ON l.`legality_id` = cl.`legality_id`
WHERE cl.`card_id` = 23155
SELECT cl.`cl_boolean`, l.`l_name`
FROM `card_legality` cl
LEFT JOIN `legality` l ON l.`legality_id` = cl.`legality_id`
WHERE cl.`card_id` = 23155 or 1 = 2
(これは本当の場合ではありません。問題を示してください)
2番目のものがなぜそんなに遅いのか知りたいです(本当の場合はほぼ100倍遅い)。
さて、以下は私の場合のクエリ(オラクル)です:
select *
from LA_TESTCASE this_
left outer join LA_RULE rule1_ on this_.ROOTCAUSE_RULE_ID = rule1_.ID
left outer join LA_TEST test2_ on this_.TEST_ID = test2_.ID
left outer join LA_SUITE suite3_ on test2_.SUITE_ID = suite3_.ID
left outer join LA_RUN run4_ on suite3_.RUN_ID = run4_.ID
where (run4_.NAME = 'RRP_XO-245'/* or 1 = 2*/)
order by this_.ID desc;
サンプルケースとほぼ同じです。