go语言中rows.Next性能问题

zzlcb520 · 2018-05-22 10:50:18 · 1072 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-05-22 10:50:18 的主题,其中的信息可能已经有所发展或是发生改变。

下面代码中 因为数据也不算太大2W多条,但是rows.Next() 竟然执行了1分多钟,我换回C#10来秒,这让我很不理解,有大神能提点下吗?不胜感激

func queryLineInfo() string {

loginfo(log_info, log_project, "数据查询开始!")
rows, err = QuerySql(sqlstr)
loginfo(log_info, log_project, "数据查询结束!")
if err != nil {
    rows.Close()
    //fmt.Println("数据库查询失败", err)
    get_lineinfo.Rescode = "0000"
    get_lineinfo.Resmsg = "数据库查询失败!"
}
var databuff []get_lineinfo_buff
loginfo(log_info, log_project, "数据组织开始!")
for rows.Next() {
    var buff get_lineinfo_buff
    err = rows.Scan(&buff.LineNo, &buff.LineName, &buff.Station_id, &buff.Station_Order, &buff.Station_Name, &buff.IsUpDown, &buff.Status, &buff.Price, &buff.StartTime, &buff.EndTime)
    if err != nil {
        rows.Close()
        loginfo(log_error, log_project, "rows.Scan失败:"+err.Error())
        get_lineinfo.Rescode = "0002"
        get_lineinfo.Resmsg = "数据解析失败!"
    } else {
        get_lineinfo.Rescode = "0001"
        get_lineinfo.Resmsg = "数据获取成功!"
        databuff = append(databuff, buff)

    }

}

rows.Close()
get_lineinfo.Data = databuff
loginfo(log_info, log_project, "JSON转换开始!")
if jsonstr, err = json.Marshal(get_lineinfo); err != nil {
    fmt.Println("Json", err)

}
loginfo(log_info, log_project, "JSON转换结束!")
return string(jsonstr)

}


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

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

1072 次点击  
加入收藏 微博
2 回复  |  直到 2018-05-23 11:08:51
jarlyyn
jarlyyn · #1 · 7年之前

不知道你c#的代码怎么样的。

pprof看一下呗。

keepeye
keepeye · #2 · 7年之前

也不知道你的sql是什么样的,有没有关联查询

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传