gorm 如果使用同一个sql.db 去开协程。为什么速度会比单线程跑快很多


本文摘自网络,作者WorkDog,侵删。

我想问下,我使用同一个sql.db 去开启很多协程执行sql。和单线程跑 sql。为什么协程快那么多??

// 单线程。
now := time.Now() //6.1172755s
for i := 0; i <= 100; i++ {
    var temp tms.LogisticsOrder
    temp, err = lDao.FindOrderById(2964)
    if err != nil {
        break
    }
}
if err != nil {
    fmt.Println(err)
}



//开启协程。
now := time.Now()  //372.6668ms
list, err := pkg.StartRoutine(time.Second*100, lDao.FindOrderById, params, 100) // 里面开启100个携程
if err != nil {
    fmt.Println(err)
}
fmt.Println(time.Since(now))

一个花了6s多,一个只花了372ms。为什么呢? 我不是在协程里面开的db 也就是这100个协程公用同一个db 。按常理来说他们的速度不可能差这么多啊!

有没有吊大的,讲解一下,求求了!!!!


相关阅读 >>

聊聊Golang的zap的sink

在vscode中使用 Gopls

Go语言如何把int转为字符串

Golang如何实现收发邮件?

Golang 底层也用 Golang 吗?

Golang切片需要make吗

Go操作redis

教你使用Golang和lua实现一个值班机器人

Go link

Golang 可以开发 web 吗?

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...