使用MySQL插入18000多行的最佳方法

时间:2015-07-03 11:41:22

标签: php mysql wordpress

我有一个脚本可以解析其中包含18000多行的csv文件。目前,我的代码构建了一个格式为的SQL语句:

INSERT INTO (...) VALUES (..., ..., ...)

当我输出已编译的SQL并直接在数据库中运行时,我得到以下内容:

Error in Processing Request
Error code: 500
Error text: Internal Server Error

我认为数据是有效的,因为我通过phpmyadmin直接导入只是为了测试初始文件。我还使用较小版本的最终文件对我的代码进行了较小的测试,并且运行正常。

所以我的问题是我创建了一个太长而无法运行的SQL查询,如果有的话,还有更好的方法吗?

另外,这个代码是从WordPress的后端执行的,这是文件上传功能将存在的地方。

很想得到一些反馈。

1 个答案:

答案 0 :(得分:3)

查看MySQL的LOAD DATA INFILE语句,该语句以非常高的速度将文本文件中的行读取到表中。

LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[CHARACTER SET charset_name]
[{FIELDS | COLUMNS}
    [TERMINATED BY 'string']
    [[OPTIONALLY] ENCLOSED BY 'char']
    [ESCAPED BY 'char']
]
[LINES
    [STARTING BY 'string']
    [TERMINATED BY 'string']
]
[IGNORE number LINES]
[(col_name_or_user_var,...)]
[SET col_name = expr,...]