在 Golang 的 SQL 包中,有 QueryRow 和 Exec 两种执行查询语句的方法。如果我正在事务中执行插入查询语句,从性能角度来看,哪种方法更好?
``` err = tx.QueryRow(query, params).Scan(&id) ```
vs
``` result, err = tx.Exec(query, params) ```
``` err = tx.QueryRow(query, params).Scan(&id) ```
vs
``` result, err = tx.Exec(query, params) ```
Exec
返回sql.Result
而不是*sql.Rows
,因此无法通过sql.Result
进行迭代。tx.Query
将返回*sql.Rows
以进行关闭和迭代。 - topenion