EXPLAIN SELECT node_id
FROM node
WHERE person_id IN (SELECT person_id
FROM user
WHERE is_locked = 0);
MySqlの結果、サブクエリが導出されます。しかし、そうではありません!MySQLはサブクエリが派生していないと判断します。
(私はこれは簡単に登録しようとして再記述できます知っているが、私はMySQLは、これが依存サブクエリであると考えて理由を知りたい。)
私はMySQLの専門家ではありませんが、ここではStackoverflow状態にあるいくつかの人が、この状況でMySQLがクエリオプティマイザに盲目的にいることを読んだことがあります。 –
+1 MySQLは従属サブクエリを検出するのに本当に悪いので、それについて何もできません。 – AndreKR
用語を理解するには、サブ選択が導出されます(結果の表は問合せから導出されますが、副問合せは従属としても知られています)。つまり、1行に1回ではなく1回だけ実行する必要があります。 – RedFilter