保持mysql连接打开



我正在制作一个eggdrop tcl脚本,将几个公共IRC通道的活动写入数据库(我认为随着时间的推移,这将是10到15个通道)。我有两种处理数据库连接的方法。

  1. 用户说了什么->打开mysql连接到数据库->插入用户所说的信息->关闭连接
  2. 启动bot ->打开mysql连接到数据库->当有通道活动时插入信息->等待更多信息等

我认为用例1更好,但是当有很多通道活动时,我认为每次打开和关闭连接都会导致大量的服务器负载,并在一段时间后急剧减慢速度。

最好的方法是什么?

如果您想保持连接打开,只需调用

mysql::ping $dbhandle

不时地

可以这样做:

proc keepMySqlOpen {dbhandle} {
    mysql::ping $dbhandle
    after 2000 [list keepMySqlOpen $dbhandle]
}
....
    set dbh [mysql::open ...]
    keepMySqlOpen $dbh
...

另一种选择是在访问数据库之前使用mysql::ping,根据mysqlcl手动重新连接数据库。这可能是两全其美的(如果没有太多的活动,让连接超时,否则保持打开)。

相关内容

  • 没有找到相关文章

最新更新