java - Java/Scala内存统计数据库如何实现?

标签 java sql statistics embedded-database

我的需求是汇总 Web 应用程序服务器的实时统计信息。 例如:

  • 完成了多少内容类型 X 的请求
  • 处理类型Y的请求需要多长时间

等等。

此数据必须完全在内存中,而不是在文件中,以获得最佳性能。它不会记录每个请求,而只会存储各个方面的计数器。

我知道的最简单的方法是将值存储在类似 SQL 的表中并执行类似 SQL 的查询。好处是索引是现成的,无需开发工作。我猜是一些嵌入式 Java 数据库,例如 Apache Derby会做这项工作。

另一种方法是为每个“索引列”实现集合(比如列表)和哈希表。这样就全部用 Java/Scala collections API 完成了,但实际上我必须自己实现索引机制,测试它,维护它等等。

所以我的问题是您认为哪种方式更可取,是否还有其他方式可以轻松快速地实现此功能?

谢谢。

最佳答案

我会选择H2 database ,我对它有非常积极的体验,性能也很好。

您确定 SQL 数据库非常适合您的需求吗?您是否看过 javamelody ,看看它是否适合您的需求,或者如果它不适合您,请查看 JRobin用于滚动数据库实现。

关于java - Java/Scala内存统计数据库如何实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4438731/

相关文章:

sql - 左联接中的歧义(仅适用于Oracle?)

python - python random.choices 有偏见吗?

random - Xoshiro/Xoroshiro 和零

java - 我无法使用 Socket.IO-client Java 连接到服务器

java - 如何删除这些 html 元素,同时保留格式?

mysql - 试图构造一个左连接来查询多对多关系中的数据库表

sql - 如何在 Rails 中查询这个?

像timeSeries一样检测锯齿的算法

java - 使用 scalac 与 sbt 编译和运行 jar?

java - 如何为 R 设置 `Java headers gen.:` (安装 `rJava` )