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

WorkDog · · 1686 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

我想问下,我使用同一个sql.db 去开启很多协程执行sql。和单线程跑 sql。为什么协程快那么多?? ```go // 单线程。 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 。按常理来说他们的速度不可能差这么多啊! 有没有吊大的,讲解一下,求求了!!!!

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1686 次点击  
加入收藏 微博
1 回复  |  直到 2021-05-22 19:34:50
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传