2 回答
TA贡献1817条经验 获得超14个赞
在打开的文件中指定 buffering=2**10。
我认为这是 OSX 上 psycopg2 的问题。我遇到了同样的问题,它在 ubuntu 上运行得非常快。无论数据库是否在 OSX 和 Ubuntu 上,它在 OSX 上都很慢。我的 copy_expert 在 OSX 上花了 13 分钟。当我更改 buffering=2**10 时,它从 13 分钟变为 7 秒。
TA贡献1820条经验 获得超2个赞
我建议使用很棒的django-postgres-copy,我曾经使用它在几秒钟内轻松地将包含约 100 万行的 CSV 文件直接导入到 PostgreSQL。
它由加利福尼亚公民数据联盟制作,用于导入和导出带有 Django 对 PostgreSQL COPY 命令的支持的分隔数据。
“这个包试图让使用 COPY 像 Django 支持的任何其他数据库例程一样简单。它是由自定义模型管理器实现的。”
这是将 CSV 导入数据库表的方法。
from myapp.models import MyModel
MyModel.objects.from_csv("./data.csv", dict(name='NAME', number='NUMBER'))
这是将数据库表导出到 CSV 的方式。
from myapp.models import MyModel
MyModel.objects.to_csv("./data.csv")
阅读django-postgres-copy 文档以获取更多信息。
添加回答
举报