表 A 有 500'000 条记录:
id, text, created, b_id
表 B 有 20'000 条记录:
id, text
A.b_id is FK to b.id
因此,当我执行以下操作时:
SELECT text, created, (SELECT b.text FROM b WHERE b.id = A.b_id) FROM a WHERE created < now()
或者也
SELECT text, created, (SELECT b.text FROM b WHERE b.id = A.b_id) FROM a LIMIT 0,10
子选择是否会在 WHERE 子句之后执行,所以实际上只在记录上执行where created < now()
。仅在前十条记录上执行,还是在排除发生之前对每条记录执行?
谢谢!