2011-10-27 94 views
11

如果我知道列的值应该始终处于smallint数据类型允许的范围内,从数据完整性维护的角度来看,似乎我应该存储数据在一个smallint列而不是int列中。smallint与int对性能的影响

但是我想知道是否有任何性能命中可能通过使用较少的字节支付?

回答

11

更小的类型=磁盘上的存储空间更少,从而导致更高效的索引。但是,除非处理大量的数据,否则这些性能增益将是最小的;此外,为了避免隐式转换(这可能抵消您看到的任何性能提升),您需要确保每次引用该列时使用正确的类型(包括与参数的比较等)。

大概是洗一个方法。

2

正如斯图尔特提到的那样,我预计性能和存储的差异是微不足道的。

这也值得考虑你想用给定类型建模的“域”。如果smallint更准确地为数据建模域,那么它的价值就是明确的,即使它没有提供明显的性能改进。