在postgresql插入大量数据,是不是先要关闭自动提交?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在postgresql插入大量数据,是不是先要关闭自动提交?相关的知识,希望对你有一定的参考价值。

C#开发:在postgresql插入大量数据时,是否需要设置AutoCommit为false,要是不设置的话是不是每插入一条数据都会提交一次,大大降低了插入速度?
要是需要设置?请问如何设置??拜谢

插入大量数据最好用COPY命令,比insert快的太多了。

COPY只是一个sql命令,不需要设置的,postgresql的文档里面有这个命令的详细用法。
有什么问题就HI我吧。
参考技术A 写个存储过程吧

SQLITE3插入大量数据,效率翻百倍

参考技术A 用SQLITE插入商品数据,发现才500条 就需要10多秒时间,太慢了。后来查了一下原因。如下:
大量插入数据 SQLITE插入一条数据,事务就会被反复地开启、关闭,会增大IO量。如果在插入数据前显式开启事务,插入后再一起提交,则会大大提高IO效率,进而加数据快插入速度。
根据测试结果:不预先开启事务,效率20 条/s。预先开启事务效率34095条/s。
这个效率差距挺大的。
//预先开启事务
db.execDML("begin;");
//提交并关闭事务
db.execDML("commit;");
加上后,几百条商品数据1秒都不要 就插入完毕了,不错。
记录一下

以上是关于在postgresql插入大量数据,是不是先要关闭自动提交?的主要内容,如果未能解决你的问题,请参考以下文章

PostgreSQL数据库导入大量数据时如何优化

PostgreSQL数据库导入大量数据时如何优化

PostgreSQL 临时表是不是已经取消记录?

从 Django 创建 SQL 插入脚本以填充 PostgreSQL 数据库

postgresql 数据库 INSERT 或 UPDATE 大量数据时速度慢的原因分析

在 Postgresql 中打开和关闭连接的最佳时机是啥时候?