V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
The Go Programming Language
http://golang.org/
Go Playground
Go Projects
Revel Web Framework
ahmcsxcc

golang sql 包的 next 方法是每次到数据库端取一条数据?

  •  
  •   ahmcsxcc · May 13, 2020 · 1441 views
    This topic created in 2178 days ago, the information mentioned may be changed or developed.

    是这样吗?

    如果是这样这样网络开销是不是有点大?

    tms
        1
    tms  
       May 14, 2020
    准确说是 next 一次从 buffer 里取一条数据到 lastcols,至于你说的数据库和客户端的网络开销和交互取决于 buffer,是 driver 的事情,由 client 和 server 端配合来进行管理。
    sql 的 next 定义参考 https://golang.org/src/database/sql/sql.go?s=77737:77764#L2732
    对于 mysql 如 go-sql-driver 这个 driver 在 packets.go 里有 readRow 调用 readPacket 来管理 buffer.go 定义的 buffer 。
    对应 mysql server 端的 https://dev.mysql.com/doc/internals/en/com-query-response.html
    其他数据库 server 和 driver,也可以对应研究一下。
    ahmcsxcc
        2
    ahmcsxcc  
    OP
       May 14, 2020
    @tms #1
    感谢,我先去研究研究
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   797 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:29 · PVG 04:29 · LAX 13:29 · JFK 16:29
    ♥ Do have faith in what you're doing.