我使用 golang 应用程序对本地 postgresql 实例运行相同的查询,并使用psql. 时间差异很大,我想知道为什么。使用解释/分析查询花费了 1 毫秒,database/sql在 golang 中使用,花费了 24 毫秒。我在下面添加了我的代码片段。我意识到解释/分析可能并不等同于直接查询数据库,并且可能还涉及一些网络延迟,但是差异仍然很大。为什么会出现这样的差异呢?
编辑:我已经尝试过使用 10 个以上查询的样本大小进行上述操作,并且差异仍然存在。
postgres=# \timing
Timing is on.
postgres=# select 1;
?column?
----------
1
(1 row)
Time: 2.456 ms
postgres=# explain analyze select 1;
QUERY PLAN
------------------------------------------------------------------------------------
Result (cost=0.00..0.01 rows=1 width=4) (actual time=0.002..0.002 rows=1 loops=1)
Planning Time: 0.017 ms
Execution Time: 0.012 ms
(3 rows)
Time: 3.748 ms
Run Code Online (Sandbox Code Playgroud)
package main
import (
"database/sql"
"fmt"
_ "github.com/lib/pq"
"time"
)
func main() {
// setup database …Run Code Online (Sandbox Code Playgroud)