我有一个表“ Tab”,其中包含以下数据:
id | value
---------------
1 | Germany
2 | Argentina
3 | Brasil
4 | Holland
用perfomane选择哪种方法更好?
1. SELECT * FROM Tab WHERE value IN ('Argentina', 'Holland')
或者
2. SELECT * FROM Tab WHERE id IN (2, 4)
我想第二选择会更快,因为int比较比string快。MS SQL是否正确?
这个评论太长了。
这是一个过早的优化。整数和字符串之间的比较通常将对查询性能产生最小的影响。查询性能的驱动力更多地取决于表的大小,查询计划,可用内存以及对资源的竞争。
通常,在用于任何比较的列上都有索引是一个好主意。第一列看起来像一个主键,因此它会自动获取索引。字符串列应具有建立在其上的索引。通常,与建立在可变长度字符串列上的整数相比,建立在整数列上的索引将具有略微更好的性能。但是,这种类型的性能差异实际上仅在具有非常高的事务级别的环境中才有意义(请考虑每秒数千次数据修改操作)。
您应该使用最适合应用程序的逻辑,并担心代码的其他方面。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句