POSTGRESQL,postGRESQL

  POSTGRESQL,postGRESQL

  PostgreSQL:文档:8.3:填充数据库

  14.4.

  填充数据库第一次可能需要插入大量数据

  填充数据库。本节包含以下方面的一些建议

  如何让这个过程尽可能高效。

  14.4.1.使残废

  自动提交

  关闭自动提交,最后只提交一次。(在

  普通SQL,这意味着发出从.开始

  开始和结束时提交。一些

  客户端库可能会背着你这么做,在这种情况下

  你需要确保图书馆在你需要的时候做这件事

  完成了。)如果您允许单独提交每个插入,

  一种数据库系统做了很多

  为添加的每一行工作。做…的额外好处

  一个事务中的所有插入是,如果插入

  一行失败,则所有行的插入都失败

  到那个点会被回滚,所以你不会被卡住

  部分加载的数据。

  14.4.2.使用复制使用复制加载所有

  一个命令中的行,而不是使用一系列

  插入命令收到。命令针对加载大型文件进行了优化

  行数;它不如插入灵活,但开销却少得多

  适用于大数据负载。因为副本是一个

  单个命令,如果您

  使用此方法填充表格。

  如果您不能使用复制,它可能

  帮助使用准备

  要创建准备好的插入语句,

  然后尽可能多地使用执行

  必需的。这避免了一些重复的开销

  解析和计划插入。不同的

  接口以不同的方式提供这种便利;寻找

  中的"准备好的语句"

  接口文档。

  请注意,使用复制加载大量行几乎总是比使用

  插入,即使使用了准备,并且使用了多个插入

  批处理成一个单一的交易。

  在中使用时,复制速度最快

  与先前创建的事务相同的事务

  表或截断命令。在…里

  在这种情况下,不需要编写任何沃尔,因为在

  错误,包含新加载数据的文件将被

  无论如何都被删除了。但是,这种考虑不适用于以下情况

  存档模式为

  设置,因为在这种情况下所有命令都必须写入沃尔.

POSTGRESQL,postGRESQL