与PostgreSQL连接的好技术

本文关键字:技术 连接 PostgreSQL | 更新日期: 2023-09-27 17:50:48

我使用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查询每秒

与PostgreSQL连接的好技术

PostgreSQL支持连接池(池大小可自定义),所以常用模式:

using (NpgsqlConnection conn = new NpgsqlConnection(...))
{
...
}

在我看来,你应该在你需要的时候打开一个连接,然后关闭它。这将防止服务器上的大量连接保持活跃。

根据我的经验,打开一个连接不会花费那么多时间(几毫秒,通常是执行时间的一小部分),所以您不必太担心。