我正在开发一款MMORPG,它还有很长的路要走。
但是,我现在注意到MySQL服务器具有自动连接终止时间限制。因此,在x时间之后,连接终止。因此,我的服务器发生了大约8小时的运行时间,用户无法在注销时登录或更新他们的角色。
一个简单的解决方法是让超时值非常大,但我想知道这是不是一个坏主意?
另一个解决方案是,在进行SQL查询之前检查连接是否仍然有效,如果没有启动新连接。虽然如果它没有不良的副作用,我更喜欢第一种选择。
答案 0 :(得分:1)
如果您还没有这样做,我想说最好的选择是在服务器上使用正确的connection pool,而不是重复使用单个连接。
现在,增加超时应该是安全的,但是MySQL 可能存在与连接相关的内存泄漏(排序),因此不时删除连接可能会更加安全。 / p>
例如,如果您正在使用动态生成的准备好的查询(某些API这样做可以使查询免受SQL注入攻击),那么MySQL可能会在内存中缓存所有准备好的查询时遇到问题。
不幸的是,你可能不得不自己实施这种驱逐。