INSERT INTO Table ( Column1, Column2 )
VALUES ( Value1, Value2 ), ( Value1, Value2 ),(..,..),(Value n,Value n)
或
Loop
{INSERT INTO Table ( Column1, Column2 )
VALUES ( Value1, Value2 )}
哪一个表现更好?
答案 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_packet,否则很快就会出现db错误。