performance - 使用Grails hasMany关系时如何解决潜在的性能问题?

标签 performance hibernate grails groovy

给定以下域类:

class Post {
   SortedSet tags
   static hasMany = [tags: Tag]
}

class Tag {
   static belongsTo = Post
   static hasMany = [posts: Post]
}

根据我到目前为止的了解,使用hasMany将导致休眠的Set映射。
但是,为了保持唯一性/顺序,Hibernate需要从数据库加载整个集合并比较其哈希值。

添加或删除帖子/标签可能会导致严重的性能问题
如果他们的组合变大。解决此问题的最佳方法是什么?

最佳答案

默认映射中,Hibernate / GORM无法确保任何顺序。因此,它不必为了执行排序而从数据库中加载元素。您将拥有大量ID,但这就是它的程度。

参见19.5.2:
http://www.hibernate.org/hib_docs/reference/en/html/performance-collections.html

通常,Hibernate / GORM将具有比您期望的更好的性能。除非并且直到您可以真正证明现实世界中的性能问题,否则,请信任该框架,不要担心。

关于performance - 使用Grails hasMany关系时如何解决潜在的性能问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/289098/

相关文章:

javascript - 重变量应该放在函数之外吗?

scala - 具有相同运行时类但不同静态类型的对象的不同性能

java - Hibernate无法提取ResultSet异常

java - Spring Data JPA - 使用现有的嵌套子对象保留新对象

grails - GORM无法与spring-boot-devtools一起使用?

performance - 如何让我的 Rust 函数更通用和高效?

java - 变量应该在java中声明在循环内还是循环外

hibernate - 在 Grails/Gorm 中索引外键

grails - GString错误-如何在程序[Grails]中使用URL参数

grails - 升级Netbeans中的Grails版本并添加Shiro安全性