是否将整个数据库加载到内存中

时间:2016-08-06 14:42:39

标签: java database

我是一名新的软件开发人员,我想问一个简单的问题。我有一个像电影管理一样的数据库。这个数据库拥有8000部电影。我想知道是否应该加载带有电影表对象的列表,或者在用户滚动电影列表时进行延迟加载?

我编辑以提供更多解释: 目前我在伪代码中执行:

我有一个列表控件显示(对于列表中的每个电影行):

Title
originaltitle
director
genre

我加载列表:

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

这很好,因为我可以在内存中进行排序和过滤。我在内存中有所有数据。 但我的问题是,如果这更好:

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

这对内存管理很有用,但是当用户向下滚动时,我必须加载电影对象才能显示标题原始标题,导演和流派。

如果我按年份排序怎么办?

我应该再次加载电影ID吗?

1 个答案:

答案 0 :(得分:3)

我会在用户滚动列表时加载。因此,当列表增长时,您不必修改任何代码来处理内存问题。我总是设计分页:偏移,限制等,偏移默认值为0,默认值为X.加载100K对于最终用户来说是不愉快的,如果他们不滚动所有内容则浪费计算时间。事实上,有一次服务器崩溃了,因为有人做了一个API调用大约100,000条记录,价值大约600MB-700MB的数据。