将.sql文件导入到本地计算机的postgresql或Mysql中

时间:2013-06-28 10:15:54

标签: mysql postgresql

我正在尝试在postgreysql或Mysql数据库中导入15GB的.sql文件。在短时间内导入如此大的数据集的更快的方法或程序是什么。

任何建议都将不胜感激?

1 个答案:

答案 0 :(得分:3)

首先,实际上没有“.sql文件”这样的东西。这就像说一个“.dat文件”,它几乎可以是任何东西。 INSERT的列表。用于创建表的脚本。从现有数据库中提取信息的查询。等

该文件可能包含表和索引定义(DDL)以及其他内容,或者它可能只是INSERT语句的列表。它可以编写为使用PostgreSQL的COPY命令等自定义供应商扩展来快速加载数据。

您需要查看该文件并查看它是什么。确定是否需要先创建表来保存数据。看看您是否需要更改任何DDL以与目标数据库兼容,因为遗憾的是,数据库供应商并未遵循SQL数据类型的标准名称,而是存在密钥生成等内容的供应商扩展。

如果将INSERT简单地放入单个表中并且插入不相互依赖,则将其加载到PostgreSQL中的最快方法是将其拆分为多个块并使用{{1}运行每个块}。

否则你只需要psql -1 -v ON_ERROR_ROLLBACK=1 -f chunk.sql

将数据加载到PostgreSQL中的最快方法是使用psql -1 -v ON_ERROR_ROLLBACK=1 -f thefile.sql,但这非常具有破坏性,我认为它不会采用预先格式化的SQL输入。下一个最佳选项是pg_bulkload命令,但这也适用于CSV / TSV,而不是用COPY编写的SQL格式数据。