【发布时间】:2013-08-10 20:55:24
【问题描述】:
假设我有一个表单查询:
SELECT a, b, c, d
FROM table1
WHERE a IN (
SELECT x
FROM table2
WHERE some_condition);
现在IN 的查询可以返回大量记录。
假设a 是主键,那么使用索引是编写此类查询的最佳方式吗?
或者循环遍历子查询返回的每条记录会更优化?
对我来说,很明显,当我执行where a = X 时,我只是进行索引(树)遍历。
但我不确定IN(尤其是在庞大的数据集上)将如何遍历/利用索引。
【问题讨论】:
-
这是与数据库无关的问题,还是您有特定的 RDBMS?
-
@OzrenTkalcecKrznaric:我已将其标记为
MySQL,因为这是我使用的。所以这不是一个笼统的问题。
标签: mysql sql performance indexing query-optimization