POSTGRESQL,postGRESQL
PostgreSQL:文档:8.3:填充数据库
14.4.
填充数据库第一次可能需要插入大量数据
填充数据库。本节包含以下方面的一些建议
如何让这个过程尽可能高效。
14.4.1.使残废
自动提交
关闭自动提交,最后只提交一次。(在
普通SQL,这意味着发出从.开始
开始和结束时提交。一些
客户端库可能会背着你这么做,在这种情况下
你需要确保图书馆在你需要的时候做这件事
完成了。)如果您允许单独提交每个插入,
一种数据库系统做了很多
为添加的每一行工作。做…的额外好处
一个事务中的所有插入是,如果插入
一行失败,则所有行的插入都失败
到那个点会被回滚,所以你不会被卡住
部分加载的数据。
14.4.2.使用复制使用复制加载所有
一个命令中的行,而不是使用一系列
插入命令收到。命令针对加载大型文件进行了优化
行数;它不如插入灵活,但开销却少得多
适用于大数据负载。因为副本是一个
单个命令,如果您
使用此方法填充表格。
如果您不能使用复制,它可能
帮助使用准备
要创建准备好的插入语句,
然后尽可能多地使用执行
必需的。这避免了一些重复的开销
解析和计划插入。不同的
接口以不同的方式提供这种便利;寻找
中的"准备好的语句"
接口文档。
请注意,使用复制加载大量行几乎总是比使用
插入,即使使用了准备,并且使用了多个插入
批处理成一个单一的交易。
在中使用时,复制速度最快
与先前创建的事务相同的事务
表或截断命令。在…里
在这种情况下,不需要编写任何沃尔,因为在
错误,包含新加载数据的文件将被
无论如何都被删除了。但是,这种考虑不适用于以下情况
存档模式为
设置,因为在这种情况下所有命令都必须写入沃尔.