go func for db在for循环中插入操作

fiei3ece  于 2023-01-22  发布在  Go
关注(0)|答案(1)|浏览(150)

我是golang的新手。我读过一些关于go例程的文章。但是我想知道它是否可以用在数据库插入操作中。我有下面的场景
1.需要在每行中插入不同类型产品的行。
例:如果我有5个产品,我需要插入它的id,name,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函数时,平均时间复杂度为22ms
1.使用Go函数时,平均时间复杂度为427ns
上述方法对于数据库操作来说是一个好的实践吗?

ffscu2ro

ffscu2ro1#

是的,你可以这么做。但是,你正在对数据库进行len(items)调用,这可能会因为太多的连接而损坏你的数据库。在for循环中插入/更新数据库几乎总是一个坏主意。我建议你只对数据库进行一次调用就进行批量插入。

相关问题