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

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

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

回答
編輯回答
孤酒

如果排序涉及的數(shù)據(jù)量很大,那么肯定是交給數(shù)據(jù)庫(kù)比較好。因?yàn)榕判虻淖罱K目的是分頁(yè)輸出,數(shù)據(jù)庫(kù)可以使用索引來(lái)更快的達(dá)到這一目的。

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

要具體情況具體分析:

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