Mysql Hibernate调整以实现每秒高插入和选择率

Mysql Hibernate调整以实现每秒高插入和选择率,mysql,performance,hibernate,Mysql,Performance,Hibernate,我们有一个数据采集应用程序,有两个主要模块与数据库接口(通过Hibernate)——一个用于将收集的数据写入数据库,另一个用于读取/显示从数据库收集的数据 插入的平均速率为每秒150-200次,选择的平均速率为每秒50-80次 两种写入/读取场景的性能要求可定义如下: 写入数据库-此处无特定计时或性能要求,数据库应以每秒150-200次的插入正常运行 从数据库读取-在进入数据库后3-5秒内,新收集的数据应可供用户使用 请提供有关优化Hibernate的缓存/缓冲/操作策略的最佳方法的建议,以最佳

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

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

两种写入/读取场景的性能要求可定义如下:

  • 写入数据库-此处无特定计时或性能要求,数据库应以每秒150-200次的插入正常运行
  • 从数据库读取-在进入数据库后3-5秒内,新收集的数据应可供用户使用
  • 请提供有关优化Hibernate的缓存/缓冲/操作策略的最佳方法的建议,以最佳地支持此场景

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

    谢谢

    注:所谓“每秒150-200次插入”,我指的是传入数据包的平均速率,而不是插入到数据库中的记录的实际数量。但在任何情况下,我们都应该将每秒插入的速度定为非常高的目标。

    我会首先阅读hibernate文档

    然后考虑下面的

    插入

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

    • 如果查询非常简单,查询速度可能已经可以达到50-80/秒
    • 为您的数据建立适当的索引,以获取常见的访问模式
    • 您可以在hibernate中尝试二级缓存。看见我本人没有这样做,因此无法进一步评论