【问题标题】:How long is it ok to keep a connection to a MySql db open?保持与 MySql 数据库的连接打开多久可以?
【发布时间】:2016-02-02 08:47:53
【问题描述】:

我有一个 python,它必须在服务器上 24/7 全天候工作。它不断接收数据并将其插入 MySql 数据库。这 频率可以变化,一般来说大约是:

1 write / 1 second minimun and 

1 write / 30 minutes maximum.

还有其他客户端可以从相同的数据库和表中读取,但它们是单独的应用程序。

鉴于此,我是否应该关闭从我的 python 脚本到 MySql 数据库的连接?也许我应该有一个计时器,所以我在 10 分钟内没有数据可以插入,我应该关闭连接吗?等数据来了再打开。

【问题讨论】:

  • 我想一个很好的问题是脚本从接收数据到将其输入数据库需要多快?从理论上讲,您应该能够实际保持连接数周甚至数月而不会出现问题。

标签: python mysql database


【解决方案1】:

作为:

  • 连接是唯一的(它是一个,明确标识为一个应用程序,而不是取决于费用、访问者数量、用户等的“x”连接),

  • 关闭/重新打开连接是一个消耗的资源可能比保持“睡眠”状态更多的过程

  • 一旦你在 MySQL 服务器上正确配置了 'wait_timeout' 变量(参见MySQL doc),服务器之间没有绝对必要的最小交换量:它的默认值为 8 小时;它的最大值是……一年。

具体示例:我自己有一个“前端服务器”,它在第一台专用服务器上运行;该服务器非常轻巧,并且依赖于另一个(物理)更大、更强大的服务器,该服务器拥有(大)MySQL 数据库。 “前端服务器”在启动期间连接到远程数据库一次(通过 SSH 隧道和端口转发,在 linux 上);然后连接会保留几个月。

【讨论】:

    【解决方案2】:

    我认为始终关闭连接是一个好习惯。

    如果您不关闭连接,其他客户端可能会遇到“连接过多”的问题,具体取决于您的 MySQL 服务器可以处理的连接数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2015-06-09
      • 2020-11-28
      • 1970-01-01
      相关资源
      最近更新 更多