當你想對一些資料進行排序并回傳時,你應該使用哪種邏輯進行排序?
以串列形式接收任何型別的資料時,是否最好通過 DB 端的 Order by 接收排序后的資料并按原樣使用?還是DB端不使用orderby,按原樣接收資料,然后在spring端排序更好?
供參考,使用spring-boot、jpa、QueryDSL,DB為mysql。
如果您能告訴我更好的方法以及原因,我將不勝感激!!!
uj5u.com熱心網友回復:
一般來說,如果你能用 SQL 做,就用 SQL 做。
資料庫引擎在快速高效地執行 SQL 方面確實令人印象深刻。
只有當行數相當有限并且在 SQL 中 order by 非常復雜時,我才會考慮在 JVM 中執行
uj5u.com熱心網友回復:
這個答案是對@Jens Schauder 答案的補充。一個好的架構會將資料訪問與業務邏輯以及任何超越(Web 層等)分開。
當您從資料庫抽象層收集資料時,請確保使用保留順序的資料結構。還要確保當資料通過應用程式時,會保留此順序。
我已經看到資料訪問層對資料進行排序的情況,然后工程師使用無序的集合,例如 a Set,而不是 a List。
好的單元測驗會讓你看到正確的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/513440.html
