PostgreSQL INSERT-自动提交模式与非自动提交模式



我是PostgreSQL的新手,在学习的过程中仍然学到了很多。我的公司正在使用PostgreSQL,我们正在用大量的数据填充数据库。我们收集的数据本质上相当庞大,而且来源于某些类型的视频片段。例如,与大约15分钟的视频相关的数据花了我大约2天的时间才进入数据库。

我的问题是,我有与数小时的视频相关的数据集,这些视频需要数周才能摄入数据库。我被告知,这需要很长时间才能完成,部分原因是PostgeSQK默认情况下将自动提交设置为true,提交事务需要花费大量时间/资源。我被告知我可以关闭自动提交,因此进程将大大加快。但是,我担心会有多个用户填充这个数据库。如果我在每隔10秒将程序更改为提交,并且两个人试图填充同一个表。第一个人得到一个id,当他在记录7上时,第二个人试图插入到同一个表中,他们得到了相同的id密钥,一旦第一个人决定提交他的更改,第二人的id密钥将已经被使用,从而引发错误。

那么,当多个人同时接收数据时,将数据插入PostgreSQL数据库的最佳方法是什么呢?在自动提交模式下插入数据时,有没有办法向多个人发出相同的id密钥?

如果ID来自serial类型或PostgreSQL序列(由serial类型使用),那么您永远不必担心两个用户从序列中获得相同的ID。这根本不可能。nextval()函数只分发一次给定的ID。

最新更新