我需要用CSV文件填充几个表格。我尝试使用一个插入每行的循环,但是一个包含65,000条记录的文件需要花费20分钟以上。
我想使用MySQL命令LOAD DATA LOCAL INFILE
,但收到了这条消息:
第112行的C:\ xampp \ htdocs \ myProject \ apps \ backend \ modules \ member \ actions \ actions.class.php中禁止加载数据本地INFILE
经过一番研究后,我了解到需要将PDO的一个安全参数(PDO::MYSQL_ATTR_LOCAL_INFILE
)更改为true。
在symfony2中,您需要在应用的config.yml上更改它,但我无法在symfony 1.4上找到它。
答案 0 :(得分:1)
让我试着理解这个问题(或问题?!)。
如果您需要优化INSERT
查询,则应该在单个INSERT
查询或几个查询中批处理它们,但绝对不是每行。此外,MySQL中的INSERT
查询总是很慢,特别是对于插入的大量数据,还取决于数据库的索引,引擎和模式结构。
关于第二个问题,看看here,也许会有所帮助。