繁体   English   中英

go func for db insert operation inside a for loop

[英]go func for db insert operation inside a for loop

我是戈朗的新手。 我已经阅读了大约 go 个例程。 但我想知道它是否可以用于数据库插入操作。 我有以下情况

  1. 需要在每一行中插入不同类型产品的行。

例如:如果我有 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 的情况下进行了试用

  1. 不使用 go func 平均时间复杂度为 22ms

  2. 使用 go func 平均时间复杂度为 427ns

上述方法是数据库操作的好习惯吗?

是的,你可以做到。 但是,您正在对数据库进行 len(items) 调用,这可能会由于连接过多而导致数据库耗尽。 在 for 循环中插入/更新数据库几乎总是一个坏主意。 我建议您只调用一次数据库来进行批量插入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM