代码之家  ›  专栏  ›  技术社区  ›  ROBERT RICHARDSON

我应该为事件处理程序保留打开的数据库连接吗?

  •  1
  • ROBERT RICHARDSON  · 技术社区  · 7 年前

    我正在用C语言编写一个应用程序,它将通过ODBC连接到PostgreSQL数据库。数据库将与我的应用程序在同一台机器上。我的应用程序将有一个事件处理程序,每秒可以触发几次。处理程序将向数据库表中写入两个值。我想知道是应该在应用程序启动时打开一次数据库连接以供事件处理程序使用,还是应该在事件处理程序内部打开它并在处理程序完成其工作时关闭它。

    如果使用连接池,这个问题就没有意义了,因为如果有可用的连接,就会一直使用现有的连接,我可以只打开和关闭连接,而不用担心会减慢应用程序的速度。但是,PostgreSQL的ODBC驱动程序似乎不支持连接池。还是这样?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Laurenz Albe    7 年前

    从不 为每个请求打开和关闭数据库连接。只要交通量很少,它就可以工作,但在其他方面,它是灾难的预兆。

    您可以使用像pgBadger这样的外部连接池,但如果在您的情况下这样做有些过头,只需保持连接打开即可。每秒写入数次,这显然是正确的做法。