我正在为一个行业的约会议程工作。问题是哪一个更好。当应用程序初始化时,将数据从数据库转储到ArrayList,并在我想要一天约会时遍历ArrayList,或者每次我想要一天的约会时执行一次查询?数据库位于localhost上。
Java查询是PreparedStatement。
我之所以这样问,是因为当约会增加时,在ArrayList上迭代的效率将会越来越低。
发布于 2013-06-10 19:28:22
根据表的大小和系统的可伸缩性,您有不同的选择。
如果您有一个显示每日约会的模式,那么我建议您提取该模式,以获得一个通用的解决方案来显示一天的约会。
最重要的是,如果您有要在选定日期运行的验证,请在数据库中保持它的简单和安全,这样也不会丢失持久性的全部要点。
也可以在内存数据库中查看。
发布于 2013-06-10 20:25:15
一般来说,我会离开数据库处理和缓存数据库。我做了一些测量,结果表明在JVM中处理记录相当慢(过滤、排序、非重复、分组)。
如果您使用的是更高级别的集合,比如ArrayList,而不是数组(比如Customer[]),情况尤其如此。
我甚至不担心“远程”数据库;在本地主机数据库的情况下,只需为数据库提供更多的RAM作为其缓存或工作内存,并且使用Java很难超越数据库的数据库访问规划/缓存。
但是您应该遵循规则,只使用一条SQL语句查询您的数据库。查询有多复杂并不重要,但重要的是您的请求要在单个查询中完成。
还有另一个好处:您不需要显式地处理缓存。在Java中构建缓存并不难,但是缓存同步/失效可能很困难。所以你需要维护的代码库要小得多。
https://stackoverflow.com/questions/17022653
复制相似问题