我正在尝试将5000万个HTML文件中的信息提取到MySQL数据库中。我的问题是在这个过程中的哪个阶段我应该将信息存储到MySQL数据库中。例如,我正在考虑这些选项:
我知道如果我已经拥有CSV中的信息,LOAD DATA INFILE比单个INSERT语句快得多。但是,如果我没有CSV中的信息,我不知道首先创建CSV是否更快。
问题的关键:写入本地CSV的速度是否比单个INSERT语句更快或更接近?
我正在使用PHP以防万一。提前谢谢!
答案 0 :(得分:0)
他们的关键是不要为每个条目插入一个,而是批处理内存中的条目然后执行批量插入。
请参阅:https://dev.mysql.com/doc/refman/5.7/en/insert.html
使用VALUES语法的INSERT语句可以插入多行。为此,请包含多个列值列表,每个列值都括在括号内并用逗号分隔。例如:
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
像SQLAlchemy或Hibernate这样的ORM足够智能(取决于配置)来自动批量插入。