我正在使用
因此,这里是一般的想法:
如上所示,我有一个
我的问题是:这种方法正确吗?还是每次进行事务时都应该打开和关闭连接——尽可能晚地打开,尽快关闭?
如果我应该每次打开和关闭连接——那么我是否应该编写一个队列来限制并发连接数量?或者 PostgreSQL 会自行处理——理论上,我可以打开200个连接,一切都没问题。
请与我分享您的经验 ^^
编辑:我将每秒运行100-200个查询。
Npgsql
通过.NET访问PostgreSQL。我关注正确的连接数据库方法,因为在我看来,每次执行某些事务时打开连接然后关闭它是一项昂贵的操作。因此,这里是一般的想法:
public class PostgreSQL
{
private NpgsqlConnection conn; // <- one connection for this object, open all the time
public PostgreSQL(string connString)
{
conn = new NpgsqlConnection(connString);
conn.Open();
}
// ...here making some queries...
public void Close() => conn.Close(); // <- use this in the very end of the program
}
如上所示,我有一个
PostgreSQL
类的实例连接。我的问题是:这种方法正确吗?还是每次进行事务时都应该打开和关闭连接——尽可能晚地打开,尽快关闭?
如果我应该每次打开和关闭连接——那么我是否应该编写一个队列来限制并发连接数量?或者 PostgreSQL 会自行处理——理论上,我可以打开200个连接,一切都没问题。
请与我分享您的经验 ^^
编辑:我将每秒运行100-200个查询。
Close()
和Open()
,连接也不会完全关闭和打开。但这是一个桌面应用程序吗?查询是否并发进行? - Sami Kuhmonen