我有几个表存储了相当大的数字,因此我选择了decimal(17, 2)
作为所有列的数据类型。
架构示例:
表1(value1,value2,value3,value4,value5)
表2(value1,value2,value3,value4,value5)
为了论证,如果每个表中有100,000行,并且每个值都是100.00
,那么如果数据类型为decimal(5, 2)
,如何比较查询性能?它可以忽略不计吗?主要区别是占用的存储空间吗?
答案 0 :(得分:1)
如果您正在使用Decimal类型,因为您使用的是“非常大的数字”,那么您使用Decimal类型的原因是错误的。当舍入精度是主要考虑因素时,使用十进制类型,而不是因为数字很大。实际上,对于非常大的数字, float 将是更好的选择,因为它可以容纳更大的数字。就性能而言,最好的办法就是自己测试一下。填写一个包含100,000行小数,浮点数等等的表格并测试查询性能。
答案 1 :(得分:0)
Precision Storage bytes
--------------------------
1 - 9 5
10-19 9
因此,它decimal(5, 2)
比存储中的decimal(17, 2)
少45%。
执行时间的差异取决于服务器的任务和配置。如果瓶颈是I / O系统上的负载,那么增加可能是~40%。