[英]go func for db insert operation inside a for loop
我是戈朗的新手。 我已经阅读了大约 go 个例程。 但我想知道它是否可以用于数据库插入操作。 我有以下情况
例如:如果我有 5 个产品,我需要将其 id、名称、created_at 作为行插入。所以 5 个产品总共有 5 行。下面的方法好用吗
for _, j := range items {
go func(j product_object){
obj := prepare_dto(j)
save_in_db(obj)
}(j)
}
我在使用和不使用 go func 的情况下进行了试用
不使用 go func 平均时间复杂度为 22ms
使用 go func 平均时间复杂度为 427ns
上述方法是数据库操作的好习惯吗?
是的,你可以做到。 但是,您正在对数据库进行 len(items) 调用,这可能会由于连接过多而导致数据库耗尽。 在 for 循环中插入/更新数据库几乎总是一个坏主意。 我建议您只调用一次数据库来进行批量插入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.