有關程式 N+1 問題
最近在做複雜的 API
由於 PM 覺得某一個 JSON 屬性調整
結果需要改好幾隻程式 API
不過有查到可以使用GraphQL | 一种为你的 API 而生的查询语言
但這篇不是重點在 GraphQL
而是我探索某一篇 阻碍你使用 GraphQL 的十个问题 | 咀嚼之味
它就像是一顆無限向下延伸的樹。所以在我看來,GraphQL 更應該叫 TreeQL,當然在圖論裡,Tree 就是 Graph 也沒毛病啦。需要注意的是,這也會引出 「N + 1 problem」 的話題——naive 的 GraphQL 服務端實現會讓這段 query 變得異常慢!
看了一下內容,N+1 問題就有像一個查詢每一行執行 SQL
如下
|
|
奇怪,這個怎麼讓我想到 ORM 也是這樣
所以我查了一下 ORM 真的也有這個問題
由於最近也想開使用 ORM ,所以進入前想了解之後使用上會遇到什麼問題
這邊只會先整理