小编Anu*_*g M的帖子

使用database/sql查询比直接查询数据库慢很多

我使用 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)

postgresql go psql

3
推荐指数
1
解决办法
3914
查看次数

标签 统计

go ×1

postgresql ×1

psql ×1