我知道這樣問有點空泛
但是因為牽涉到公司內部業務
也不好說明
簡單來說系統有框架
但是為了應付種種「特殊需求」
往往要用JDBC繞過框架直接存取DB
而這類查詢都相對複雜
串多表、去重、交集、排序、合併...
SQL寫起來都像作文
甚至難以驗證結果
而效能的部分我沒有詳細比較
不過複雜的SQL確實也不快就是
想請問各位前輩
相同的查詢結果(功能)
大家會用簡單SQL,再靠程式跑邏輯
還是將複雜邏輯寫成SQL呢?
這應該沒有所謂的正確答案
甚至是 case by case
也有可能 30% SQL + 70% Program
或 60% SQL + 40% Program
不過還是很歡迎大家分享各自的經驗、看法
謝謝!
這的確沒有正確答案。
我最多只能說說我個人的習慣。
基本上來說,我會區分實例呈現情況,偏向用程式來處理資料。
而背景式處理。則偏向用資料庫來處理。
如果要說細一點的話。用程式處理大大的目的其實大多是組合性。
所以有可能會用多個請求處理。
但請求後認真來說並不會再次請求對應處理。有可能會緩存,有可能會另處理命令式。
而背景式處理,畢竟不需要再擔心回應的問題。
只要在承載的住的情況下。全交由資料庫運算處理。
1.若是複雜SQL語法及計算值,我會放到DB上的Store procedure運算結果後再取。
2.若是查詢DΒ join 會用view。
3.若是很簡單沒牽涉問題很複雜,直接SQL執行。
複雜查詢該以程式處理還是SQL語句處理?
您問的問題
表示資料庫也是您管的
所以要看是
每個人回答第一句應該都是看情況 XD
一般來說我是看業務邏輯複雜度
p.s. 也有遇過案子是不准使用store procedure的,敏感行業會覺得查不到軌跡
複雜的sql 90%我會選擇用程式處理
除了測試比較方便之外
最重要的是主機多開幾台
比處理資料庫sync簡單太多了阿阿阿阿阿
其實以方便自己開發維護為主,擅長用程式處理就可以在程式,擅長使用SQL處理就使用SQL,有蠻多東西都是先出來最後才優化,邊寫邊想著優化反而容易混亂,當然這是個人經驗,說不定有可以一心多用的人,先求有再求好。