保持mysql连接打开

时间:2013-03-01 15:44:40

标签: mysql tcl eggdrop

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

  1. 用户说了些什么 - >打开与数据库的mysql连接 - >插入有关用户所说内容的信息 - >关闭连接
  2. 启动机器人 - >打开与数据库的mysql连接 - >有渠道活动时插入信息 - >等待更多信息等。
  3. 我认为最好使用案例1,但是当有很多频道活动时,我认为每次打开和关闭一个连接都会导致大量服务器负载并在一段时间后大幅减速。

    最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

如果您想保持连接打开,请致电

mysql::ping $dbhandle

不时。

这可以通过以下方式完成:

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

另一个选择就是在访问数据库之前使用mysql::ping,如果需要,应根据mysqltcl manual重新连接。这可能是两个世界中最好的(如果活动不多,请将连接超时,否则保持打开状态。)