不仅仅是 SQL 的替代品

Ebean ORM 查询 适合典型的 OLTP 查询,但是不太适合一些手动 SQL,尤其是在报告和 OLAP 领域。同样,当前版本对递归查询也没有太好的支持。

Ebean 查询专注于 OLTP,在适当地情况下不要忘了使用 SQL

对象图构建

将 ORM 查询视为对象图构造是很有用的,也就是说,当你创建一个 ORM 查询的时候,就是在定义读取对象图的中需要过滤/判断的那部分。

加载

对于 Ebean select()fetch()了对于对象图的读取,select()是相对于对象图根节点的,而fetch()则是相对于对象图子叶节点。 在更多高级情况下,可以使用FetchConfig来控制对象图的哪些部分采用 急加载/懒加载,或者对象图的哪一部分从数据库读取,哪一部分从 L2缓存,哪一部分L3级缓存读取。

对象图的某些部分可以从L2高速缓存,L3文档库被加载

加载-查询调优

调优以获得最佳性能的ORM查询归结为:

  • 什么性质的加载(只加载你需要为给定的用例)
  • 对象图的哪些部分采用懒加载,哪些部分采用急加载
  • 对象图的那些部分从数据库读取,那些部分从 L2 高速缓存读取,哪些部分从 L3 文档库中读取
  • 不执行查询所有使用L2高速缓存查询
  • 不执行查询所有使用L3文档库

加载-自动调谐

results matching ""

    No results matching ""