如何在Golang中同时迭代sql结果集?
发布时间:2020-12-16 09:26:04 所属栏目:大数据 来源:网络整理
导读:next()方法是顺序的,有没有办法同时迭代循环? 我有一个200k行的结果集,我按顺序循环并在每一行上执行逻辑并想要将其拆分. 解决方法 你从查询中获得的sql.Rows不能同时使用(我相信). 但你可以在goroutines做大部分繁重的工作. 这是一个例子(非工作但很接近),
next()方法是顺序的,有没有办法同时迭代循环?
我有一个200k行的结果集,我按顺序循环并在每一行上执行逻辑并想要将其拆分. 解决方法
你从查询中获得的sql.Rows不能同时使用(我相信).
但你可以在goroutines做大部分繁重的工作. 这是一个例子(非工作但很接近),在Play package main import "fmt" import "sql" type Row struct { x string y string z string } func processor(ch chan Row) { for row := range <-ch { // be awesome } } func main() { ch := make(chan Row) // two handler go routines (current processors) go processor(ch) go processor(ch) rows := db.Query("select x,y,z from whatever") for rows.Next() { var row Row if err := rows.Scan(&row.x,&row.y,&row.z); err != nil { // do something with error } else { ch <- row } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |