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

ran*_*ana 0 java mysql database arraylist

我在本地机器上有MYSQL数据库,我正在运行java程序.

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

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

谢谢.

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

sti*_*vlo 5

不,它会慢得多,因为要在ArrayList中找到一个元素,你必须按顺序扫描ArrayList,直到找到你的元素.

它可以更快,几百个条目,因为你没有连接开销,但有两百万条目,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
Run Code Online (Sandbox Code Playgroud)

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