Java重复输入和性能问题

时间:2011-02-26 04:12:29

标签: java database performance data-structures

Java + MySql

我有什么:

我有一个存储的数据类(id,firstName,lastName,workingHours)。我从数据库中获取此信息并存储在数据类中。此数据类包含许多重复项,例如,每个员工(具有相同的名字和姓氏)可以在不同的时间工作,例如,

peter nick 4
peter nick 2
peter nick 8

我要做的是:

我想删除重复并将所有小时数存储为数组或csv

例如

peter nick [4,2,8]

数据库中有超过500万条记录,我尝试使用一些数据库查询,但需要很长时间:(。我认为如果我在内存中加载所有数据并执行任务会很快。我有10GB RAM。< / p>

如何以最佳表现实现这一目标?

由于

2 个答案:

答案 0 :(得分:1)

您应该可以使用GROUP BY idGROUP_CONCAT

执行此操作

http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

答案 1 :(得分:0)

检索按名字,姓氏排序的所有行。然后将行流式传输到Java应用程序中。打开文件输出流到csv文件。从第一个记录开始,按记录循环记录。虽然名字和姓氏没有改变,但建立一个工作时间列表。当firstname和/或lastname更改时,输出到csv并开始构建新的工作时间列表。