golang如何流式(stream)获取mysql数据

如题,我看了下gorm的源码query是把所有数据都获取了,存在内存操作的,如果数据量特别大,内存存不下,就需要流式操作,但是我查资料没有找到golang的流式操作方式,请各位大佬指点一下,十分感谢

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 3
// 每次批量处理 100 条
result := db.Where("processed = ?", false).FindInBatches(&results, 100, func(tx *gorm.DB, batch int) error {
  for _, result := range results {
    // 批量处理找到的记录
  }

  tx.Save(&results)

  tx.RowsAffected // 本次批量操作影响的记录数

  batch // Batch 1, 2, 3

  // 如果返回错误会终止后续批量操作
  return nil
})

result.Error // returned error
result.RowsAffected // 整个批量操作影响的记录数

这个吗?

1年前 评论

朋友说原生就是流式

1年前 评论
gitxuzan

你存的文件?

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!