PHP-插入mysql多行的最佳方法

PHP-插入mysql多行的最佳方法,php,mysql,insert,row,Php,Mysql,Insert,Row,好吧,假设我有3个sql表和一个文本文件。 文本文件为CSV格式。 文件结构-设想每行有一个数组。值0时间戳;表1的1,4,7,10值;表2的值为2,5,8,11;表3的3,6,9,12值。 将处理后的数据插入数据库的最佳方法是什么? 解决方案1。foreach行为“insert into tab…;”,这是我目前使用的,需要花费很多时间。 解决方案2。foreach line read将sql语句推送到一个数组中,当我处理完所有行后,生成一个字符串,如“Insert-into-tab…”;In

好吧,假设我有3个sql表和一个文本文件。 文本文件为CSV格式。 文件结构-设想每行有一个数组。值0时间戳;表1的1,4,7,10值;表2的值为2,5,8,11;表3的3,6,9,12值。 将处理后的数据插入数据库的最佳方法是什么? 解决方案1。foreach行为“insert into tab…;”,这是我目前使用的,需要花费很多时间。 解决方案2。foreach line read将sql语句推送到一个数组中,当我处理完所有行后,生成一个字符串,如“Insert-into-tab…”;Insert-into-tab…;Insert-into-tab…;”并执行查询。
这个文件有一个文件夹。4000行,每个表有7个值。

您应该使用批插入,而不是为每个语句做一条记录。在您的情况下,每个表应该有一个insert语句(除非给定表中的记录超过一个“mysql数据包”所能容纳的数量)

见:

如果使用批插入,则应确保每个批插入不超过该变量

您还可能会发现索引是您最大的瓶颈。在大插入之前禁用它们并在大插入之后重新启用它们可能会有所帮助。见:


最后,MySQL可以应用于它,用于高带宽插入。

我认为您可以使用MySQL语法

LOAD DATA INFILE '/path/to/file' INTO TABLE tbl_name

我假设您是在要求代码,对吗?不,我不是在要求代码。我要求的是最好的方法。或者在读取和处理每一行时将数据发送到sql,或者使用sql语句为每一行生成一个数组,然后从所有数组元素生成一个字符串,并将查询发送到mysql。