查询速度和具有常量值的表达式

时间:2013-08-14 10:16:52

标签: sql

SELECT * FROM Table WHERE ID=2*2

慢于

SELECT * FROM Table WHERE ID=4

我的意思是: 2 * 2 计算一次还是在检查每条记录时计算出来?

您可能会问为什么写2 * 2而不仅仅是4?

实际上,在我的实际情况中,我有一些数字表示构建一些文本的字符(有人有一个"伟大的"将数值数据数组保存为字符串的想法。)

所以我的查询就像:

SELECT * FROM Table where value1=(CHAR(20)+CHAR(8)+CHAR(32))

我可以在我身边计算这个字符串,但可能会出现编码问题,在查询中传递/n/r等字符。

如果我使用(CHAR(20)+CHAR(8)+CHAR(32))而不是像'#!_'

这样的普通字符串文字,这{{1}}会减慢我的查询吗?

1 个答案:

答案 0 :(得分:3)

与2 * 2等常量表达式相同。但是,如果您开始比较ID / 2 = 2.它将减慢查询速度,因为它必须计算所有行。