哪个选择在Sqlite中更快?

时间:2015-02-06 01:22:06

标签: sql sqlite

a是表索引,b是普通列。

select a,b from ( select a,b from table where a in (*listA*) ) where b in (*listB*)

select a,b from table where (a=listA[0] and b=listB[0]) or (a=listA[1] and b=listB[1])...

我使用伪代码表示列表声明。

1 个答案:

答案 0 :(得分:0)

第一个查询错误,因为它从不查看ab的组合。

要使用临时表,您必须加入它:

SELECT a, b
FROM MyTable
JOIN (SELECT 1 AS a, 2 AS b UNION ALL
      SELECT 3,      4      UNION ALL
      SELECT 5,      6 ...)
USING (a, b)

哪个版本更优化取决于太多因素;找出的唯一方法是用代表性数据进行衡量。