Hibernate调整可实现高速率的插入和每秒选择

时间:2010-08-30 16:25:26

标签: mysql performance hibernate

我们有一个数据采集应用程序,其中两个主要模块与DB(通过Hibernate)连接 - 一个用于将收集的数据写入DB,另一个用于从DB读取/显示收集的数据。

平均插入率为每秒150-200,平均选择率为每秒50-80。

写作/阅读场景的性能要求可以这样定义:

  1. 写入数据库 - 此处没有具体的时间或性能要求,数据库应该正常运行,每秒150-200次插入
  2. 从数据库中读取 - 在进入数据库后的3-5秒内,用户可以使用新收集的数据
  3. 请咨询有关调整Hibernate缓存/缓冲/操作策略的最佳方法,以便最佳地支持此方案。

    BTW - 带有InnoDB引擎的MySQL正在Hibernate下使用。

    感谢。

    P.S。:说“每秒150-200次插入”是指传入数据包的平均速率,而不是插入数据库的实际记录数。但无论如何 - 我们应该以每秒非常高的插入速率为目标。

1 个答案:

答案 0 :(得分:0)

我会首先阅读hibernate docs的this chapter

然后考虑以下

插入

  • 批量插入并为每个事务执行几百个操作。你说你可以忍受3-5秒的延迟,所以这应该没问题。

选择

  • 如果查询非常简单,查询可能已经是50-80 /秒
  • 针对常见访问模式对数据进行适当索引
  • 您可以在休眠中尝试二级缓存。见this chapter。我自己没有这样做,所以无法进一步评论。