如果我知道列的值应该总是在smallint数据类型允许的范围内,从数据完整性维护的角度来看,似乎我应该将数据存储在smallint列而不是一个int列。
但是我想知道是否可以通过使用更少的字节来支付任何性能命中?
答案 0 :(得分:11)
较小的类型=磁盘上的存储空间更少,这会导致更高效的索引。但是,除非处理大量数据,否则这些性能增益将是最小的;此外,为了避免隐式转换(可能会抵消您看到的任何性能提升),您需要确保在引用该列时使用正确的类型(包括与参数的比较等)。
可能是一种清洗方式。
答案 1 :(得分:2)
正如斯图尔特所说,我预计性能和存储差异可以忽略不计。
同样值得考虑您想要使用给定类型建模的“域”。如果smallint更准确地为数据建模域名,那么即使它没有给你带来显着的性能提升,也值得明确表示。