【问题标题】:Hibernate tuning for high rate of inserts and selects per second休眠调整以实现每秒的高插入率和选择率
【发布时间】:2010-08-30 16:25:25
【问题描述】:

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

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

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

  1. 写入 DB - 这里没有特定的时间或性能要求,DB 应该以每秒 150-200 次插入正常运行
  2. 从 DB 中读取 - 新收集的数据应在进入 DB 后 3-5 秒内提供给用户

请就调整 Hibernate 的缓存/缓冲/操作策略以最佳支持此方案的最佳方法提出建议。

顺便说一句 - 在 Hibernate 下使用带有 InnoDB 引擎的 MySQL。

谢谢。

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

【问题讨论】:

    标签: mysql performance hibernate


    【解决方案1】:

    我会先阅读 this chapter 的 hibernate 文档。

    然后考虑以下

    插入

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

    选择

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-03
      • 1970-01-01
      • 2015-01-14
      • 1970-01-01
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      相关资源
      最近更新 更多