使用 MySQL/PHP 导入大量数据


Importing large amounts of data using MySQL/PHP

我们创建了一个导入脚本,该脚本将大约120GB的数据导入MySQL数据库。数据保存在几个百无一失的目录中(都是单独的数据库)。每个目录都包含具有表结构和表数据的文件。

问题是;它在我的本地机器上工作,具有实际数据的子集,但是当导入在服务器上运行时(这需要几天时间)。并非所有表都已创建(即使是在本地测试的表)。奇怪的是,脚本在服务器上运行时在创建表时不会显示任何错误。

下面是脚本工作原理

的高级内容:
  1. 查找表示数据库的所有目录
  2. 创建所有数据库
  3. 每个数据库循环遍历表:创建表、填充表

添加了要点的代码:https://gist.github.com/3349872

添加更多日志记录以查看由于内存使用或执行时间问题而成功的步骤。

为什么不从给定的 CVS 文件创建 sql 文件,然后在 bash 中进行常规导入?

MySQL -u root -ppassword db_something

Auch,问题出在代码上。令人惊讶的愚蠢错误。

在所有文件的子集上测试代码时,所有表信息和表内容(如果可用)。如果未创建表计数,函数将输入日志记录语句并返回。在实际数据上,这是一个错误,因为有些文件没有数据也没有结构,所以在创建几个表后,某个数据库的表的创建出错并进行了返回,因此没有创建其他表。