2

简而言之,我想知道在 Java 中使用数组列表来保存其中包含大量数据的对象是多么有效。arraylist 可以增长多长时间,在运行时使用 arraylist 保存 2000 多个客户详细信息(对象)是否有任何问题?它是否以任何方式影响性能?或者有没有更好的方法来设计需要快速访问数据的应用程序?

我正在为我的小型 ERM 应用程序开发一个新模块(客户线索跟踪器),该应用程序还处理公司的工资单详细信息。到目前为止,数据还不是很大,现在有了这个模块,我希望数据库能够快速增长,我将不得不从数据库中加载 2000 多个客户详细信息来执行不同的数据操作和更新。

我想要一些关于哪种方法更好的建议,

  1. 查询客户数据库(100 多列)并为每笔交易获取数据。(每个都有很多单独的查询)

  2. 将每一行加载到对象中,将其保存在开头的数组列表中,并在需要时使用该列表处理每一行。并在事务结束时保存对象(行)?

抱歉,如果我问了一个转储问题,我真的是一个刚起步的独立开发人员,从经验丰富的开发人员的角度来看,这可能听起来有点尴尬。

4

2 回答 2

2
  1. 由于内部数组的类型化索引,AnyArrayList可以容纳不超过 2 31 -1 个元素。int

  2. 有一种方法称为in memory Db,这意味着您在内存中保存大量数据以便快速访问它。但这种方法也意味着:

一个。你有很多内存,可用于保存所有必要的数据(可能是几十 GB);

湾。you db 实现了紧凑的数据存储形式。这意味着 db 将不包含现成的 java 对象,而是字节数组数据的片段,您将根据需要从中构造对象。

因此,您需要计算要加载到内存中的所有数据需要多少内存,并决定这种方法是否符合条件。

于 2013-06-04T05:51:58.620 回答
2

取决于你有多少内存。为每个事务查询数据库也不是一个好方法。更好的方法是根据你的内存大小将数据加载到内存中,一旦你完成它,删除它并接下来触发一组数据库查询。通过这种方式,您可以优化内存以及数据库查询。

于 2013-06-04T06:02:16.363 回答