gpt4 book ai didi

sql - 哪个最快,1x 插入 512 行,4x 插入 128 行,或 512x 插入 1 行

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:32 28 4
gpt4 key购买 nike

我有 512 行要插入到数据库中。我想知道提交多个插入内容是否比提交一个大插入内容有任何优势。例如

1x 512 行插入 --

INSERT INTO mydb.mytable (id, phonenumber)
VALUES (1, 555-555-5555) , (2, 555-555-5555) , (3, 555-555-5555), //repeat to id = 512

VS 4x 128 行插入

INSERT INTO mydb.mytable (id, phonenumber)
VALUES (1, 555-555-5555) , (2, 555-555-5555) , (3, 555-555-5555), //repeat to id = 128
INSERT INTO mydb.mytable (id, phonenumber)
VALUES (129, 555-555-5555) , (130, 555-555-5555) , (131, 555-555-5555), //repeat to id = 256, then next 128, then next 128.

VS 512x 1 行插入

INSERT INTO mydb.mytable (id, phonenumber)
VALUES (1, 555-555-5555)
INSERT INTO mydb.mytable (id, phonenumber)
VALUES (2, 555-555-5555) // repeat until id = 512

还有一个关于测试这个的问题,如果我将其设置为测试 - 假设我使用第一种方法,一个 512 行的大插入。这需要 0.5 秒。那么下一次需要 0.3 秒——我认为这种缓存会发生吗,就像编程语言执行两次相同的操作时那样,会发生在 sql 中吗? (因此是否需要为每种方法获得良好的平均测试结果?)

在进行非常大的插入(例如,50 万)时,我还应该考虑哪些其他注意事项?如果发送到数据库的数据包太大,它永远不会接收或执行查询,这是真的吗?我什至会因为进行非常大的插入而遇到麻烦吗?

最佳答案

我的答案是假设 SQL Server;我怀疑我所说的适用于其他 SQL 引擎。

任何 SQL Server 查询的大部分开销都是执行计划的开发。如果您将其作为单个插入执行,则必须制定一 (1) 次执行计划;如果您执行 512 次单独插入,则必须制定 512 次执行计划。因此,执行单个插入的开销要少得多。

如果我发现该引擎发现了您不知道、不想或无法做到的其他效率,我不会感到惊讶。但是,如果仅节省执行计划,那么单次插入仍然值得。

关于sql - 哪个最快,1x 插入 512 行,4x 插入 128 行,或 512x 插入 1 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26244076/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com