代碼(C#,Java)和數據庫(SQL)應該在哪裏排序或過濾?代碼(C#,Java)和數據庫(SQL)之間應該在哪裏排序或過濾?
在代碼中,它意味着使用單個存儲過程從數據庫中檢索所有數據,然後過濾數據(在業務層或數據層中)。
在數據庫中,它意味着有一個存儲過程。在這種情況下,代碼(數據層)將我的過濾器設置發送到存儲過程,以便返回輕量級數據。
什麼是更好的,在什麼情況下?
代碼(C#,Java)和數據庫(SQL)應該在哪裏排序或過濾?代碼(C#,Java)和數據庫(SQL)之間應該在哪裏排序或過濾?
在代碼中,它意味着使用單個存儲過程從數據庫中檢索所有數據,然後過濾數據(在業務層或數據層中)。
在數據庫中,它意味着有一個存儲過程。在這種情況下,代碼(數據層)將我的過濾器設置發送到存儲過程,以便返回輕量級數據。
什麼是更好的,在什麼情況下?
這實際上取決於用法的性質。例如:
一般情況下,讓DB服務器做相關操作,你可以儘可能多的數據,他們爲它進行了優化。但這不是一個明確的規則。在很多情況下,一批數據被一次性檢索,預先確定並在UI層/應用程序端進行排序/過濾。例如。對於網頁上的小表進行排序以獲得更快的響應時間。
一般來說,您應該在您的代碼中創建請求並讓數據庫服務器完成這項工作。對於特定情況,您還可以決定在客戶類中過濾。