【问题标题】:How do I upload very large files to MySQL without crashing my server?如何在不使服务器崩溃的情况下将非常大的文件上传到 MySQL?
【发布时间】:2011-03-18 22:54:44
【问题描述】:

我有几个 50+ MB 大小的 csv 文件需要导入到我的 MySQL 服务器。我尝试使用 PhpMyAdmin 导入一个,Apache 服务器崩溃了。我尝试了几个 Windows 工具,例如 MySQL 工作台,但没有找到导入 csv 的选项。

我很茫然。我能做什么?

【问题讨论】:

  • 下面给出的LOAD DATA INFILE 解决方案也应该很容易由您的 MySQL 服务器管理,因此您的盒子不会倒塌。
  • 如果您能够直接连接到 sql,那么 id 建议 heidisql.com 或其他一些 sql 客户端。它具有 csv 导入功能。
  • 听起来您已达到 php.ini conf var upload_max_filesize 的限制。还可以在将文件写入数据库之前尝试将文件转储到服务器上的本地目录。

标签: mysql sql phpmyadmin


【解决方案1】:

您的文件是 CSV 文件,对吗?您是否尝试过将它们直接导入 MySQL 服务器?我不知道您尝试过的其他工具是如何做到这一点的,但是 MySQL 有一个从文本文件导入的命令:

LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
  FIELDS TERMINATED BY ',' ENCLOSED BY '"'
  LINES TERMINATED BY '\r\n'
  IGNORE 1 LINES;

查看参考手册的this section

【讨论】:

  • 效果很好!但是有没有办法做到这一点,比如一组 csv 文件?或者可能是针对 csv 文件的文件夹?如果没有,我怎么能让 MySQL 运行一个 sql 文件,你的答案用不同的路径复制粘贴 20-25 次?
【解决方案2】:

您需要使用LOAD DATA INFILEmysqlimport 命令。它们是 MySQL 的批量上传工具,应该能够毫无问题地处理您的文件。您还可以在运行命令之前关闭索引,然后再将其重新打开以提高性能。

【讨论】:

    【解决方案3】:

    通过 FTP 或 SSH 将文件上传到您的服务器。

    然后使用LOAD DATA INFILE 将文件加载到您的数据库中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2013-10-17
      • 2018-12-10
      • 1970-01-01
      • 2018-12-24
      相关资源
      最近更新 更多