猿问

Golang SQL:一次查询两个表还是分开查询/连接池更高效?

我有一个用于数据库 A 和数据库 B 的连接池。我正在将一些 Node.JS 代码移到 Go(如果重要的话,我正在使用 SQL Server),并且一些查询正在执行此操作:


db.A.Query(`

    select ... from some_table;

    select ... from B..other_table;

`) 

这样做更好,还是喜欢:


db.A.Query(...)

db.B.Query(...)

我读到这一行:


为您需要访问的每个不同的数据存储创建一个 sql.DB 对象


从这里。直到现在我才意识到我将“datastore”读为“database”,所以现在我什至不确定拥有这两个数据库连接池是否有效!


感谢您的任何帮助!


紫衣仙女
浏览 140回答 1
1回答

蓝山帝景

对于大多数情况和批量发送多个 SELECT 查询的 SQL Server 客户端程序而言,效率并不高。也许如果查询返回的结果集非常小,并且您以非常高的频率运行它们,您可能会看到实质性的差异。但在范式案例中,您是分批发送查询还是分批发送查询并不重要。这对 SQL Server 完全没有影响,因此唯一的区别在于客户端/服务器网络流量。SSMS 将允许您比较在一个批处理脚本和一个多批处理脚本中运行的查询之间的客户端统计信息。EG运行select top 10 * from sys.objectsselect top 5 * from sys.columns接着select top 10 * from sys.objectsGOselect top 5 * from sys.columns在 SSMS 中输出以下客户端统计信息
随时随地看视频慕课网APP

相关分类

Go
我要回答