Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java应用程序/ArrayList与直接数据库查询_Java_Performance_Data Binding - Fatal编程技术网

Java应用程序/ArrayList与直接数据库查询

Java应用程序/ArrayList与直接数据库查询,java,performance,data-binding,Java,Performance,Data Binding,简而言之,我想知道在Java中使用ArrayList来保存包含大量数据的对象有多有效。arraylist可以增长多长时间?在运行时使用arraylist保存2000多个客户详细信息(对象)是否存在任何问题?它对表演有什么影响吗?或者有没有更好的方法来设计需要快速访问数据的应用程序 我正在为我的小型ERM应用程序开发一个新模块(客户线索跟踪器),该应用程序还处理一家公司的工资明细。到目前为止,数据并没有这么大,现在有了这个模块,我希望数据库能够快速增长,我必须从数据库中加载2000多个客户详细信息

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

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

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

  • 查询客户数据库(100多列)并获取每个事务的数据。(每一项都有许多单独的查询)

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

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

  • 由于内部数组的类型化索引
    int
    的缘故,任何
    ArrayList
    只能容纳不超过231-1个元素

  • 内存数据库中有一种称为
    的方法
    ,这意味着您在内存中保存了大量数据,以便快速访问。但这种方法也意味着:

  • a。您有大量内存,可用于保存所有必要的数据(可能是几十GB)

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

    所以,您需要计算,对于要加载到内存中的所有数据,您需要多少内存,并决定这种方法是否合格

  • 由于内部数组的类型化索引
    int
    的缘故,任何
    ArrayList
    只能容纳不超过231-1个元素

  • 内存数据库中有一种称为
    的方法
    ,这意味着您在内存中保存了大量数据,以便快速访问。但这种方法也意味着:

  • a。您有大量内存,可用于保存所有必要的数据(可能是几十GB)

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


    所以,你需要考虑,要加载到内存中的所有数据需要多少内存,并决定此方法是否合格。

    取决于您有多少内存。查询每个事务的数据库也不是一个好方法。更好的方法是根据内存大小和完成后将数据加载到内存中删除它,然后启动下一组db查询。通过这种方式,您可以优化内存以及db查询。

    取决于您拥有的内存量。为每个事务查询db也不是一个好方法。更好的方法是根据内存大小将数据加载到内存中,并且在完成后,删除它并启动下一组数据库查询。通过这种方式,您可以优化内存和数据库查询。

    很高兴了解您建议的第二个选项。对于正在讨论的应用程序,我认为在不久的将来数据不会这么大,但我想知道如何实现这一点。。你有什么我可以学习的资源吗?谢谢你的回复。很高兴知道你建议的第二个选择。对于正在讨论的应用程序,我认为在不久的将来数据不会这么大,但我想知道如何实现这一点。。你有什么我可以学习的资源吗?谢谢你的回复这正是我所想的正确方法。。非常感谢。你对实施这种方法有什么建议?我在想什么是将这些数据存储在内存中的最佳方式?(ArrayList为我提供了迭代的灵活性..但不能完全确定缺点..)ArrayList除了大小限制之外没有任何缺点。你也可以使用HashMap,它没有大小限制,你可以使用(主键,对象)作为键值对。我刚刚搜索了HashMap,看起来很有趣。谢谢你的投入。嗨,伦吉思,Hashmap真的很酷,我从来没有学过这个。我只想特别感谢你(来自马来亚利人,来自这个遥远的靠近南极的大陆…),直到我查看了你的个人资料(我们几乎是邻居,因为我来自卡扬库拉姆…)。。干杯..嘿..Tat是一个很好的共同事件:-)请随意询问您对编程/Java的任何疑问:-)这正是我所认为的正确方法。。非常感谢。你对实施这种方法有什么建议?我在想什么是将这些数据存储在内存中的最佳方式?(ArrayList为我提供了迭代的灵活性..但不能完全确定缺点..)ArrayList除了大小限制之外没有任何缺点。你也可以使用HashMap,它没有大小限制,你可以使用(主键,对象)作为键值对。我刚刚搜索了HashMap,看起来很有趣。谢谢你的投入。嗨,伦吉思,Hashmap真的很酷,我从来没有学过这个。我只想特别感谢你(来自马来亚利人,来自这个遥远的靠近南极的大陆…),直到我查看了你的个人资料(我们几乎是邻居,因为我来自卡扬库拉姆…)。。干杯..嘿..Tat是一个很好的共同事件:-)请随意询问任何编程/Java dou