1,從開發效率來看:
聯合查詢是需要多個單壹查詢進行邏輯組合的查詢工作。只需要壹條SQL就可以完成查詢工作,即把業務邏輯放到SQL中,由數據庫處理,這樣開發效率會相對更高。
2.從查詢效率的角度來看:
單個查詢具有很高的可重用性,因此比聯合查詢效率更高。
當數據庫讀寫時,數據庫將使用鎖機制來限制其他連接對其進行操作。因為聯合查詢的查詢速度比單壹查詢慢很多,聯合查詢會增加鎖的競爭,所以用單壹查詢會更好。
3.根據邏輯架構分層的原則。
關聯表示業務規則/邏輯。如果大量使用關聯查詢,會在數據庫中執行大量的業務規則和邏輯,會大大增加cpu、內存、io等資源的消耗。
4.從資源利用方面來說。
在大多數情況下,並不是所有相關查詢的結果都得到有效利用。比如後臺管理的列表界面會分頁顯示,會用到相關查詢的結果集,但是數據庫需要消耗額外的資源來獲取所有的結果集。
5.從架構的可伸縮性來看。
大量的關聯查詢會使集中式數據庫架構難以轉化為分布式架構,難以優化可擴展性。聯查方便快捷,開發效率更好。
不使用聯查在架構層面有很多優勢,但是對系統分析、設計和開發能力要求很高。壹般在互聯網行業等用戶量大的情況下,最好註意這方面。
由於數據量較小,兩種查詢在效率上基本沒有區別,但在實際應用中要根據數據量和業務復雜程度綜合評估。