gpt4 book ai didi

java - 与访问 mysql 数据库中的相同数据相比,访问 java 列表(arraylist)是否更快?

转载 作者:行者123 更新时间:2023-12-01 00:29:36 38 4
gpt4 key购买 nike

我在运行 java 程序的本地机器上有 MYSQL 数据库。

我计划创建一个特定表的所有条目的数组列表。从现在开始,我将不再访问数据库来获取表中的特定条目,而是使用创建的数组列表。与访问数据库以获取表中的特定条目相比,这会更快还是更慢?

请注意,我感兴趣的表格有大约 200 万个条目。

谢谢。

更多信息:我只需要两个字段。 1 个 Long 类型和 1 个 String 类型。表的索引是 Long ,而不是 int。

最佳答案

不,它会慢很多,因为要在 ArrayList 中查找元素,您必须按顺序扫描 ArrayList 直到找到您的元素。

它可以更快,对于几百个条目,因为您没有连接开销,但是对于 200 万个条目,如果您创建正确的索引,MySQL 将会获胜。每次只检索您实际需要的行。

您为什么想这样做?您是否遇到查询速度慢的问题?

要找出答案,请在您的 my.cnf 中通过取消注释(或添加)以下行来激活慢速查询日志。

# Here you can see queries with especially long duration
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1

然后查看哪些查询需要很长时间,并在前面使用 EXPLAIN 运行它们,考虑在 explain 命令告诉您不使用索引的地方添加索引,或者只是用您的 CREATE TABLE 语句和您的示例发布一个新问题查询优化。

关于java - 与访问 mysql 数据库中的相同数据相比,访问 java 列表(arraylist)是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8170119/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com