SQL插入多个值1次或循环多次插入每个值哪一个更好?

时间:2013-08-21 05:17:51

标签: php sql mysqli phpmyadmin

INSERT INTO Table ( Column1, Column2 )   
VALUES ( Value1, Value2 ), ( Value1, Value2 ),(..,..),(Value n,Value n)

Loop 
{INSERT INTO Table ( Column1, Column2 )   
VALUES ( Value1, Value2 )}

哪一个表现更好?

3 个答案:

答案 0 :(得分:2)

嗯,这取决于你实际插入了多少个值。

如果有很多行,多行插入可以 有优势,因为你不需要对数据库进行大量的往返调用,这对你来说很重要客户和您的DBMS相距数千公里。

只有几行,或者如果您的客户/ DBMS位于同一地点,您可能会发现没有太大区别。

答案 1 :(得分:1)

当您在一个sql中放入大量记录时,您可能需要检查MySQL服务器的全局配置max_allowed_packet,确保sql长度不会超过max_allowed_packet或者您可以将其设置为更大的值。

答案 2 :(得分:1)

插入50 000行时使用多行。别忘了把它分开一点。 也许50个查询。每个查询1 000行。 这样可以减少数据库的负载。 只有当它是一个重载的生产数据库时才拆分它。 如果没有其他查询,则在数据库的1个查询中抛出所有50 000个查询。

如前所述,不要忘记更改max_allowed_pa​​cket,否则很快就会出现db错误。