首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对于频繁的操作,PostgreSQL中的整数ID会用完吗?

对于频繁的操作,PostgreSQL中的整数ID会用完吗?
EN

Stack Overflow用户
提问于 2017-12-12 20:41:17
回答 1查看 301关注 0票数 1

我们的PostgreSQL表和序列使用整数作为ID。

根据这一点,限制是https://www.postgresql.org/docs/9.6/static/datatype-numeric.html

代码语言:javascript
运行
复制
integer     4 bytes     typical choice for integer  -2147483648 to +2147483647

该应用程序是一个时间线调度器,类似于Outlook,它在每次添加/编辑/删除时删除并重新创建约会。无论何时进行更改,您都可以在时间线中引入新的空白,或者删除旧的空白,我们也将其作为定期约会保存。

因此,每个常见的Add/Edit/Delete操作都有可能耗尽5-6新ID(我们立即将其保存为Ajax操作),而不仅仅是1。在一天的约会完成之前,由于附加的间隙(“假”-appt),您可能会浪费大约30-50个ID。持久化,这是业务需求。

问:我们会很快用完整数ID吗?如果我们这样做了,那么调整现有的PostgreSQL DB以使用BIGINT处理ID和序列是否很容易呢?

EN

回答 1

Stack Overflow用户

发布于 2017-12-13 12:47:47

如果这样做,是否可以轻松地调整现有的PostgreSQL DB以使用BIGINT来处理ID和序列

序列总是在内部使用bigint,所以您只需要使用序列来调整列。

但是,将列从integer更改为bigint需要重写表,因为列的存储会发生更改(整数和bigint是固定宽度的数据类型)。这反过来需要表上的独占锁,如果停止对数据库的访问,这可能会更容易。这需要多长时间取决于表的大小(列数、数和行数)。

我们会很快用完整数ID吗?

假设你每秒钟“烧掉”一个序列号,一天24小时,每周7天,你将在大约68年内耗尽整数(如果允许负数的话,时间是整数的两倍)。这应该给你足够的时间来计划停机时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47781189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档