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

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


相关阅读 >>

leetcode Golang

Go 每日一库之 termtables

Golang判断map是否存在的方法

Go 语言环境安装

Golang定时任务解决方案

tools easily execute sql against structured text like csv or tsv

手撸Golang 行为型设计模式 模板方法模式

手撸Golang Go与微服务 saga模式之9 小结/gitee源码

手撸Golang 基本数据结构与算法 哈希表

Go - 一个对新手很友好的项目(带界面)

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




打赏

取消

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

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

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

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

评论

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