2016-08-06 75 views
0

我是一位新的軟件開發人員,我想問一個簡單的問題。我有一個像電影管理的分貝。這個分貝可容納8000部電影。我想知道是否應該用電影表對象加載列表,或者在用戶滾動電影列表時進行延遲加載?將整個數據庫加載到內存中或不是

我編輯給更多的解釋:在僞代碼目前 我做的:

我有一個列表控件顯示(列表中的每部電影都行):

Title 
originaltitle 
director 
genre 

我加載清單:

List<Movie>moviesList=db.getAllMovies(); 

這很好,因爲我可以在內存中進行排序和過濾。我有內存中的所有數據。 但我的問題是,如果是更好的:

List<Long>=moviesList=db.getMoviesId(); 

這是很好的內存管理,但是當用戶滾動下來,我必須加載影片對象,以顯示標題原來的片名,導演和類型。

如果我應該按年排序怎麼辦?

我應該再次加載電影ID嗎?

+2

沒有簡單的答案,這完全取決於你的環境和要求。 – Marvin

+0

好吧,通常存在數據庫,因此您可以執行'db.getMovies(query)'並獲取匹配記錄列表所需的所有信息 – Aprillion

回答

3

我將加載爲用戶滾動列表。所以當列表增長時,你不必修改任何代碼來處理內存問題。我總是設計分頁:偏移量,限制等,偏移量默認爲0,並將默認值限制在X.加載100K對於最終用戶來說是不愉快的,並且如果他們不滾動所有內容,則會浪費計算時間。事實上,有一次服務器崩潰,因爲有人做了一個API調用了100,000條記錄,價值大約600MB-700MB的數據。

相關問題