性能更好?列表,或从数据库获取信息?

时间:2014-02-14 02:36:09

标签: java mysql performance

所以,我有一台资源有限的服务器。 (RAM的3Gb) 我需要知道的是,使用这个

是否更好
List<Object> list = new ArrayList<Object>();
void init(){
    list = loadListFromDatabase
}

在需要时添加或删除列表,或者,当我需要该对象时,每次访问时都从数据库加载它?

1 个答案:

答案 0 :(得分:1)

给你一些建议,

如果你有一个像50+表这样繁重的数据库,那么数百万条记录会尝试最小化数据库访问 对于小型数据库(在您的情况下)数据库访问并不重要。

但RAM的处理速度比DB访问快

如果你在你的应用程序中使用多线程进行交互/修改/读取同一个表(在你的情况下为对象表),那么就不要在内存和处理中获取所有内容,而是每次都从DB中获取它。

如果您的代码是顺序的或者表是独立的(没有其他块正在修改同一个表),那么立即在内存中获取处理它然后将其存储回db是有效的。

你应该考虑的另一个因素是内存大小,如果你有低内存(你提到3GB内存)那么第一个选项更好,即每次从DB中获取。

所有应用程序都部署在具有3gb内存的单机上,如果是,那么请查看应用程序的内存消耗,而不是任何负载,这是您的应用程序至少需要内存量的基准

在分析您的统计数据后,据此做出决定。