作者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://www.ptt.cc/bbs/java/M.1530866885.A.31C.html
→ ssccg: 把JPA Provider的log開起來看就知道下了哪些sql 07/06 16:56
→ RPedsel: !我還真沒想過(其實也不知道)要這麼做 先謝謝樓上了 07/06 17:00
→ adrianshum: 複雜度的意思是?多少SQL? 還是DB 內部跑SQL 的複雜 07/07 13:28
→ adrianshum: 度? 07/07 13:28
推 haha02: 是說知道SQL其實也不算可以知道複雜度就是了… 要看db實 07/07 19:49
→ haha02: 際的執行方式才準 不然就是做benchmark 07/07 19:49
→ ssccg: 有sql當然還是要拿去看execution plan 07/07 21:37
→ ssccg: 不過有的時候自動產生的sql真的是一看就知道不能用了... 07/07 21:38
→ adrianshum: 至少可以肯定O(1) 不可能 07/09 12:56
推 zephyrhymn: O(1)以上要分散式系統才行吧 07/15 14:48