1

我有一个简单的问题:

有人告诉我查询:

select a1, a2, sum(b1)
from myTable
where a1 ='bla' and a2='blabla' and a3 ='aaa'

然后更快

select a1, a2, sum(b1)
from myTable
where a1 ='bla' and a2='blabla' and a3!='bbb'

我可以理解,在某些情况下,通常 a = 比 a != 快。但在这种情况下,我有一个 SUM(b1)。为此,我必须阅读所有 myTable。

谢谢你。问候

4

1 回答 1

3

某人说得很对。

即使两个查询要从表中投影完全相同的行,在只有两个值的列上使用谓词的查询,“1”出现一次,“2”构成其余部分更有可能使用索引和:

column = '1'

比它:

column != '2'

即使有一个直方图来识别偏斜,你最好用一个等号。

http://sqlfiddle.com/#!4/070db/3

于 2013-04-19T11:15:46.450 回答