我是一名新的软件开发人员,我想问一个简单的问题。我有一个像电影管理一样的数据库。这个数据库拥有8000部电影。我想知道是否应该加载带有电影表对象的列表,或者在用户滚动电影列表时进行延迟加载?
我编辑以提供更多解释: 目前我在伪代码中执行:
我有一个列表控件显示(对于列表中的每个电影行):
Title
originaltitle
director
genre
我加载列表:
List<Movie>moviesList=db.getAllMovies();
这很好,因为我可以在内存中进行排序和过滤。我在内存中有所有数据。 但我的问题是,如果这更好:
List<Long>=moviesList=db.getMoviesId();
这对内存管理很有用,但是当用户向下滚动时,我必须加载电影对象才能显示标题原始标题,导演和流派。
如果我按年份排序怎么办?
我应该再次加载电影ID吗?
答案 0 :(得分:3)
我会在用户滚动列表时加载。因此,当列表增长时,您不必修改任何代码来处理内存问题。我总是设计分页:偏移,限制等,偏移默认值为0,默认值为X.加载100K对于最终用户来说是不愉快的,如果他们不滚动所有内容则浪费计算时间。事实上,有一次服务器崩溃了,因为有人做了一个API调用大约100,000条记录,价值大约600MB-700MB的数据。