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 。按常理来说他们的速度不可能差这么多啊!

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


相关阅读 >>

30 Golang文件、目录操作

Go微服务入门到容器化实践,落地可观测的微服务电商项目

Go实现路由的链式定义

Golang无法导包怎么办?

聊聊dubbo-Go-proxy的parammapper

Go语言的依赖管理

Go协程全局变量和局部变量

Go dumpling! 让导出数据更稳定

Go 大数据生态迎来重要产品 cds

[系列] Go grpc hello world

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




打赏

取消

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

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

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

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

评论

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

    正在狠努力加载,请稍候...