作者RPedsel (Edsel)
看板java
标题[问题] JPA @ManyToMany query时间复杂度
时间Fri Jul 6 16:48:02 2018
大家好,
最近在学Spring Boot
用Spring Data JPA 写了一个多对多的关系
类似下面:
物件 Post - 其下可以有多个tags
物件 Tag - 可以被多个posts使用
还有一个一对多:
物件 Post Type - 可被多个Post使用,一个Post只有一个
也写好了一些REST API:
1. 给定postId, 找出它所有的tags
2. 给定postId,tagId,帮Post新增Tag
3. 在新增Post时假设一定要指定Post Type (Id),新增一个Post
我想知道的是,这几个query的时间复杂度是?
因为当初定义物件时,下面也就直接分别定义了tags / posts / post-type
直觉上就会觉得好像都是 O(1) 就可以做到...
不过会有这麽好的事吗QwQ...?
估狗了一下台面下好像有些table join什麽的
不过还是不太清楚实际上到底发生了什麽事...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 138.229.222.193
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1530866885.A.31C.html
1F:→ ssccg: 把JPA Provider的log开起来看就知道下了哪些sql 07/06 16:56
2F:→ RPedsel: !我还真没想过(其实也不知道)要这麽做 先谢谢楼上了 07/06 17:00
3F:→ adrianshum: 复杂度的意思是?多少SQL? 还是DB 内部跑SQL 的复杂 07/07 13:28
4F:→ adrianshum: 度? 07/07 13:28
5F:推 haha02: 是说知道SQL其实也不算可以知道复杂度就是了… 要看db实 07/07 19:49
6F:→ haha02: 际的执行方式才准 不然就是做benchmark 07/07 19:49
7F:→ ssccg: 有sql当然还是要拿去看execution plan 07/07 21:37
8F:→ ssccg: 不过有的时候自动产生的sql真的是一看就知道不能用了... 07/07 21:38
9F:→ adrianshum: 至少可以肯定O(1) 不可能 07/09 12:56
10F:推 zephyrhymn: O(1)以上要分散式系统才行吧 07/15 14:48