鍍金池/ 問答/Java  Python  C#  數(shù)據(jù)庫/ 多表查詢之后,要把數(shù)據(jù)綜合。然后排序分頁的問題;數(shù)據(jù)放在服務(wù)端還是數(shù)據(jù)庫端處理好

多表查詢之后,要把數(shù)據(jù)綜合。然后排序分頁的問題;數(shù)據(jù)放在服務(wù)端還是數(shù)據(jù)庫端處理好??

當(dāng)前的需求是要從三個表里查詢數(shù)據(jù),然后把數(shù)據(jù)符合條件的數(shù)據(jù)拿到,綜合在一起,
之后要在前臺對這些數(shù)據(jù)進行排序分頁展示;
問題是,這個過程的業(yè)務(wù)邏輯是放在后臺代碼端處理;
還是在數(shù)據(jù)庫端先建一個臨時表,之后把從這三個表獲取的數(shù)據(jù)都存入臨時表,然后再在這個歷史表里對獲取到的數(shù)據(jù)進行排序,再分頁,然后傳輸?shù)胶笈_服務(wù)端;
問一下這兩種方式那種更好???

回答
編輯回答
孤酒

如果排序涉及的數(shù)據(jù)量很大,那么肯定是交給數(shù)據(jù)庫比較好。因為排序的最終目的是分頁輸出,數(shù)據(jù)庫可以使用索引來更快的達到這一目的。

2018年3月25日 15:27
編輯回答
黑與白

要具體情況具體分析:

  • 數(shù)據(jù)量大不大,如果很大那就只能放臨時表不然你程序的可用內(nèi)存就被占用太久了,而且從表轉(zhuǎn)換成 POJO 后有大量的小對象,這對 cg 會造成壓力;如果不是很大那就可以考慮放在程序中,但是還要結(jié)合下一個點綜合考慮。
  • 整理后的數(shù)據(jù)以后還要用到嗎,頻率高不高,還是每次都必須從數(shù)據(jù)庫拉取最新數(shù)據(jù)。因為能重用就重用,但是重用的話 POJO 一樣占用很大的內(nèi)存空間,如果不需要重用,那就直接內(nèi)存中操作,分頁了立即輸出然后釋放掉也可以。
2017年7月26日 01:21