时
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))
而不是像'#!_'
答案 0 :(得分:3)
与2 * 2等常量表达式相同。但是,如果您开始比较ID / 2 = 2.它将减慢查询速度,因为它必须计算所有行。