我有成千上万的记录需要在单个用户点击时检索。目前它给我的结果非常缓慢,我不得不等待很长时间。有没有办法提高使用休眠检索这些结果?如何提高Java中的Hibernate性能?
我有一个情况,其中一个选择查询的方法将运行每一分钟。这是Hibernate给我的慢结果。我在MySQL中使用Hibernate。
我有成千上万的记录需要在单个用户点击时检索。目前它给我的结果非常缓慢,我不得不等待很长时间。有没有办法提高使用休眠检索这些结果?如何提高Java中的Hibernate性能?
我有一个情况,其中一个选择查询的方法将运行每一分钟。这是Hibernate给我的慢结果。我在MySQL中使用Hibernate。
通常的做法是让二级缓存和查询缓存。比你的数据将从记忆中获得而不是从数据库中获取。
它here
其他的事情好文章可以是有益的:
1索引 - 的情况下,存在这样的情况和订购 - 你必须建立你正在寻找/排序字段的索引 - 这样可以提高搜索速度提高10倍
2反常化 - 如果你有很多连接,一些反常化(把所有的单反表)可以帮助。但是,当一切都失败时,这应该是最终的解决方案
非常感谢你我会试试这个 –
我有一种情况,其中有选择查询的方法会每隔一分钟运行一次。这是休眠给我速度慢的地方 –
随着第二级缓存和查询缓存的启用,它将在第一次执行查询后填充实体。所以第一次可以缓慢。但下次它将使用缓存值。从内存中读取将更快 – alexey28
我建议你去为Pagination
,如果你要显示在网页上的记录和检索一次记录的一部分说100
这有点像说“一根绳子有多长?”。我们需要更多关于你的HQL的细节。只是一个简单的“where”子句可以大大加快速度。 – david99world
你使用任何缓存? (hibernate.cache.user_query_cache = true) – stzoannos
从数据库中检索大量数据只是很慢,不管是否休眠。减少要检索的行数,例如,一次显示几百行。无论如何,您的用户无法同时查看所有10000行,因此没有必要向他们提供那么多信息。 – dasblinkenlight