gpt4 book ai didi

database - 使用 10-20 位数字值的数据类型 - PostgreSQL

转载 作者:行者123 更新时间:2023-11-29 14:12:31 24 4
gpt4 key购买 nike

我目前正在开发一个需要将 10 到 20 位数的值存储到数据库中的应用程序。

我的问题是,我应该使用什么数据类型?该数字用作主键,因此数据库的性能对我的申请很重要。在 Java 中,我将这个数字用作 BigDecimal。

最佳答案

引自手册:

numeric: up to 131072 digits before the decimal point; up to 16383 digits after the decimal point

http://www.postgresql.org/docs/current/static/datatype-numeric.html

据我所知,131072 位数字应该可以满足您的需求。

编辑:
回答有关效率的问题:

第一个也是最重要的问题是:该列中存储了什么样的数据以及如何使用它?

  • 如果是数字,则使用数字。
  • 如果不是数字,则使用 varchar。

永远、永远不要在字符列中存储(真实的)数字!

如果您需要按该列排序,如果您使用字符数据类型(例如,2 将排在 10 之后),您将不会对得到的结果感到满意

回到效率问题。我认为这主要是您关心的空间效率。您可以自己计算值的空间要求。

数字数据类型的存储要求也记录在案:

The actual storage requirement is two bytes for each group of four decimal digits, plus five to eight bytes overhead

因此对于 20 位数字,这将是最多 10 个字节加上五到八个字节的开销。所以最大。 18 个字节。

要在 varchar 列中存储 20 位数字,您需要 21 个字节。

所以从空间“效率”的角度来看,numeric 稍微好一些。但这绝不会影响您的决定,因为数据类型的选择应该由列内容的要求决定。

从性能的角度来看,我也不认为会有很大的不同。

关于database - 使用 10-20 位数字值的数据类型 - PostgreSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9674286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com