我有一个需要运行每日脚本的应用程序;每日脚本包括下载一个包含 1,000,000 行的 CSV 文件,并将这些行插入到表中。
我在 Dreamhost 中托管我的应用程序。我创建了一个 while 循环,遍历所有 CSV 行并为每一行执行 INSERT 查询。问题是我收到“500 内部服务器错误”。即使我将它分成 1000 个文件,每个文件有 1000 行,我也不能在同一个循环中插入超过 40 或 5 万行。
有什么方法可以优化输入吗?我也在考虑使用专用服务器;你怎么看?
谢谢!
佩德罗
最佳答案
大多数数据库都有优化的批量插入过程 - MySQL's is the LOAD DATA FILE syntax .
要加载 CSV 文件,请使用:
LOAD DATA INFILE 'data.txt' INTO TABLE tbl_name
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES;
关于php - 优化大量 MySQL INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3712906/