Golang sql包查询比PostgreSQL SQL查询慢

问题描述 投票:-1回答:1

我正在使用Golang SQL包来调用我的数据库。我正在使用预准备语句,并在列上有索引

stmtHas := db.Prepare(`SELECT value FROM `+tableName+` WHERE key = $1;`)
now     := time.Now()
err     := db.stmtGet.QueryRow(key).Scan(&value)  
elapsed := time.Since(now)
fmt.Println(elapsed)

这印刷品 -

40.874782ms

但是,与此相比,原始SQL查询所花费的时间要少得多。

EXPLAIN (ANALYZE, BUFFERS) SELECT value FROM tableName WHERE key = 'some_key';

gives-

计划时间:0.062毫秒 执行时间:0.040毫秒

这些时间的差异是正常的吗?如果没有,我该如何优化它?

sql postgresql go
1个回答
2
投票

这真的是比较苹果和橘子。 Go代码时间表示将查询发送到PostgreSQL的时间,在PostgreSQL中执行查询所花费的时间,以及响应返回和处理所需的时间。 EXPLAIN命令仅表示在PostgreSQL中执行查询所需的时间。

© www.soinside.com 2019 - 2024. All rights reserved.