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


SQL Insert many value 1 time or loop Insert each value many time which one is better?

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

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

哪一个性能更好?

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

如果有很多行,多行插入可能会有优势,因为您不必对数据库进行大量往返调用,如果您的客户端和 DBMS 相距数千公里,这一点可能很重要。

对于只有几行,或者如果您的客户端/DBMS 位于同一位置,您可能会发现差异不大。

当您在一个

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

插入 50 000 行时使用多行。不要忘记将其拆分一点。也许 50 个查询。每个查询 1000 行。这将稍微减少数据库的负载。仅当它是重载的生产数据库时才拆分它。如果没有其他查询,请将所有 50 000 个查询抛到数据库中的 1 个查询中。

如前所述,不要忘记更改max_allowed_packet否则您很快就会遇到数据库错误。