HGDB如何提升批量导入数据的速度

目录

文档用途

详细信息

文档用途

本文档用于提供几个提升瀚高数据库批量导入数据速度的方向,需要根据实际情况具体分析及选择。

详细信息

关闭自动提交

在批量插入数据时,如果每条数据都被自动提交,当中途出现系统故障时,不仅不能保障本次批量插入的数据一致性,而且由于有多次提交操作的发生,整个插入效率也会受到很大的打击。解决方法是,关闭系统的自动提交(SET AUTOCOMMIT = OFF),并且在插入开始之前,显式的执行 BEGIN TRANSACTION 命令,在全部插入操作完成之后再执行 COMMIT 命令提交所有的插入操作。

使用 COPY 命令

使用 COPY 在一条命令里装载所有记录,而不是一系列的 INSERT 命令。COPY 命令是为装载数量巨大的数据行优化过的,它不像 INSERT 命令那样灵活,但是在装载大量数据时,系统开销也要少很多。

注:因为 COPY 是单条命令,因此在填充表的时候就没有必要关闭自动提交了。

删除索引

如果你正在装载一个新创建的表,最快的方法是创建表,用 COPY 批量装载,然后创建表需要的任何索引。因为在已存在数据的表上创建索引比维护逐行增加要快。当然在缺少索引期间,其它有关该表的查询操作的性能将会受到一定的影响,唯一性约束也有可能遭到破坏。

删除外键约束

和索引一样,"批量地"检查外键约束比一行行检查更加高效。因此,我们可以先删除外键约束,装载数据,然后再重建约束。

更多详细信息请登录【瀚高技术支持平台】查看https://support.highgo.com/#/index/docContent/40dee1ea037a56fb

猜你喜欢

转载自blog.csdn.net/pg_hgdb/article/details/105762857
今日推荐