Mr *_*ain 3 postgresql transactions
我有 2 百万需要插入 postgresql 的数据。但它发挥了低效。我可以通过将大事务拆分为较小的事务来实现高性能插入器吗(实际上,我不想这样做)?或者,还有其他明智的解决方案吗?
不,让它更快的主要思想是在一个事务中完成所有插入。多个事务,或不使用事务,要慢得多。
并尝试使用复制,它甚至更快:http : //www.postgresql.org/docs/9.1/static/sql-copy.html
如果您确实必须使用插入,您也可以尝试删除此表上的所有索引,并在加载数据后创建它们。
这也很有趣:http : //www.postgresql.org/docs/9.1/static/populate.html
提高性能的可能方法:
COPY命令。isolation level如果您的数据可以处理后果,请尝试减少交易。nobarrier的标志ext4)和/或fsyncPostgreSQL 服务器。警告:这通常是不安全的,但会大大提高你的性能。仅当由于并行事务的数据依赖性问题而必须重试事务时,将插入作业拆分为一系列较小的事务才会有所帮助。如果事务在第一次尝试时成功,将其分成几个按顺序运行的较小事务只会降低性能。
| 归档时间: |
|
| 查看次数: |
7922 次 |
| 最近记录: |