我有一个十进制长度为11位数的列(0.4335687532,-0.4216776567),但是,我在SQL中创建了十进制数据类型(18,15),最终在此处添加了五个0
s小数结束。我这样做的原因是因为新数据可能有更多数字,但没有迹象表明它会。我想知道添加这些小数是否会最终影响任何性能或我可能遗漏的任何其他内容。
答案 0 :(得分:2)
precision 确定小数值的长度,而不是 scale 。因此,decimal(18, 5)
和decimal(18, 15)
通常在数据页上占用相同的字节数。
添加的数量无疑取决于您使用的数据库 - 每个数据库都可以自由格式存储小数。但通常情况下,格式每两个小数位使用一个字节,也可能是另一个或两个字节的开销。因此,额外的5个零通常需要2-3个字节的存储空间。
在确定数据库的行为时,这种开销通常很小。毕竟,读取和写入数据的单位是在数据页中测量的 - 这些通常以千字节到兆字节来衡量。
根据系统(硬件和软件)的不同,稍微长一些数字的算术运算可能需要稍多的时间。
总体而言,很难想象性能会受到明显影响的情况。