持续和多个CRUD操作的最佳数据库访问

时间:2015-07-17 08:10:38

标签: java mysql database-connection

在我提出这个问题之前,我确信之前已经提出这个问题,但是我很难填写适当的条款来找到这个问题。结果我无法找到任何信息。如果之前有人问我,我会道歉。

请考虑以下情形: 游戏服务器由SQL数据库支持,用于播放器存储和日志记录。每次玩家登录数据都会被检索和写入。此外,还会每隔几秒钟(20秒或更长时间)将日志写入数据库,包括有关玩家的更改数据。

我想知道如何处理这些连接。保持连接永久打开是一个坏主意,因为MySQL服务器在“不活动”后关闭它。

每次打开连接都有效,但我想知道这是最好的方法还是有另一种可能性?

1 个答案:

答案 0 :(得分:3)

这就是connection pools的好处。试试HikariCP,速度非常快。您可以在普通JDBC以及JPA或O / R映射器之上使用它。如果您有大量并发连接,它将保持一组连接打开(池化)并管理其重用

如果您必须在数据库中存储日志,那么有几个日志框架已经有了这样做的功能。例如,Logback有一个在连接池之上工作的DBAppender:

  

" ...,向上述MySQL数据库发送500个日志记录请求大约需要0.5秒,每个请求平均需要1毫秒,这是性能提升了十倍。" (source