【发布时间】:2014-04-13 19:13:00
【问题描述】:
我一直在研究这个主题一段时间,但没有成功。这是问题所在: 我有一个 4.5GB 的 csv 文件需要插入到我的 mysql 数据库中。该文件太大而无法通过 phpmyadmin(最大 55 MiB)导入,并且太大而无法上传到我的 Web 服务器(最大磁盘空间为 1000 MB)。在这一点上,我不确定是否有可能完成我需要做的事情。我知道如何使用 LOAD DATA LOCAL INFILE,但是如果 csv 文件已经在我的 Web 服务器上,我就无法执行该命令。任何想法将不胜感激。
如果有帮助的话,附注:我从ftp://alt.ncsbe.gov/data 下载了 csv 文件。这个网站是我每周获取信息的地方。我不确定是否可以从所述站点下载我需要的信息并将其插入到我的数据库中,而无需将其下载到我的物理机上。只是一个随机的想法,但我更专注于第一个问题。
【问题讨论】:
-
您的 MySQL 实例在哪里运行?该实例是否允许该大小的数据库?如果它在 Web 服务器上运行,或者在相同配置的机器上运行,则不会。
-
假设 MySQL 实例允许 允许该大小的数据库,它是否允许远程连接,或者您只能从网络服务器连接?如果您可以远程连接,您可能可以使用带有
LOAD DATA LOCAL INFILE的MySQL 客户端(无论是官方命令行工具、官方Workbench GUI 还是某些第三方应用程序)(服务器配置允许);否则您可能必须将 CSV 分成 1GiB 块(或者您的主机可能会为您提供一些特殊的访问权限,例如通过电子邮件将指向 CSV 的链接发送给他们,以便他们手动导入)。 -
加载此文件后,MySQL 数据库会有多大?在本地尝试,如果它大于 1G,那么我认为您需要升级您的托管帐户。请记住,设置一台可以做到这一点的机器 - 如果您愿意自己管理 VPS - 每月可能需要花费几英镑/美元 - 所以与不合适的帐户作斗争没有什么价值。
-
我想我是对的,在这么小的 Web 服务器上是不可能的。感谢您的确认。