應用中有些復雜邏輯,需要多個條件查詢資料。這些條件分布在2~4張表中,那么一般兩種方式:
1. 寫一條復雜sql,多表關聯查詢。在服務層代碼中只需要使用這條sql。
2. 寫多條簡單sql,一般是單表查詢。在服務層代碼中寫回圈,通過多次使用獲取資料。
那么,我們應該優先是用什么方式?他們的使用場景分別是什么?
uj5u.com熱心網友回復:
使用第一種方式 。第二種,基本上沒有什么市場。
uj5u.com熱心網友回復:
看資料量,如果資料少,用第一種方式,資料多,用第二種。uj5u.com熱心網友回復:
如果說應用端不做任何處理,只是簡單回圈,然后不停呼叫多個簡單 SQL;每次網路來回加上 SQL 運行的時間,資料量增長以后會導致性能急劇下降。復雜的多表連接需要注意 SQL 陳述句的性能問題,各種索引建立起來。
通常來說第一種方式會更可靠一些,因為你用的是關系型資料庫,而不是 NoSQL。
uj5u.com熱心網友回復:
建議方案二便于后續問題排查和交接,一句復雜的sql,對于一般開發人員來說,不建議
如果是一次開發,后續沒有任何變動,建議方案一
uj5u.com熱心網友回復:
建議方案一,比較穩妥,方案2用代碼多做操作呼叫不建議uj5u.com熱心網友回復:
從性能上考慮,毫無疑問選擇方案1。如果SQL非常復雜,可以考慮拆解成2~3個SQL
不建議第二種方案,除非資料量很小,沒有什么性能問題
uj5u.com熱心網友回復:
關聯的話性能是個大問題,可以參考《大主子表關聯的性能優化方法》和《如何優化 JOIN 性能 》這兩篇文章轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/55518.html
標籤:開發
上一篇:oracle如何使用ogg同步資料到informix資料庫(或者有處理informix文本資料匯入oracle亂碼的解決方案)
下一篇:SQL的哪種效率更高?
