use*_*868 3 database postgresql sqldatatypes digit
我目前正在开发一个应用程序,需要将 10 到 20 位数字的值存储到数据库中。
我的问题是,我应该使用什么数据类型?该数字用作主键,因此数据库的性能对我的应用很重要。在Java中,我使用这个数字作为BigDecimal。
小智 7
引用手册:
数字:小数点前最多 131072 位;小数点后最多 16383 位
http://www.postgresql.org/docs/current/static/datatype-numeric.html
据我所知,131072 位应该可以满足您的需求。
编辑:
回答有关效率的问题:
第一个也是最重要的问题是:该列中存储什么类型的数据以及如何使用它?
永远不要在字符列中存储(真实)数字!
如果您需要按该列排序,那么如果您使用字符数据类型,您将不会对所得到的结果感到满意(例如2将在之后排序10)
回到效率问题。我认为这主要是您关心的空间效率。您可以自己计算您的值的空间要求。
还记录了数字数据类型的存储要求:
实际存储要求是每组四位十进制数字两个字节,加上五到八个字节的开销
因此,对于 20 位数字,最多为 10 个字节加上 5 到 8 个字节的开销。所以最大。18字节。
要在 varchar 列中存储 20 位数字,您需要 21 个字节。
所以从空间“效率”的角度来看数字稍微好一些。但这永远不会影响您的决定,因为数据类型的选择应该由列内容的要求驱动。
从性能的角度来看,我认为也不会有太大的差异。
| 归档时间: |
|
| 查看次数: |
4515 次 |
| 最近记录: |