假设我有一个表单查询:
SELECT a, b, c, d
FROM table1
WHERE a IN (
SELECT x
FROM table2
WHERE some_condition);
现在查询IN
可以返回大量记录。假设这a
是主键,那么使用索引是编写此类查询的最佳方式吗?
还是循环遍历子查询返回的每条记录更为理想?
对我来说,很明显,当我做 awhere a = X
时,我只是做了一个索引(树)遍历。
但我不确定IN
(尤其是在庞大的数据集上)如何遍历/利用索引。