1

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))如果我使用它而不是像 '#!_' 这样的纯字符串文本,这会减慢我的查询速度吗

4

1 回答 1

3

对于像 2*2 这样的常量表达式,这将是相同的性能。但是,如果您开始比较 ID/2 = 2。它将减慢查询速度,因为它必须计算所有行。

于 2013-08-14T10:26:18.277 回答