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>
如何以最佳表现实现这一目标?
由于
答案 0 :(得分:1)
您应该可以使用GROUP BY id
和GROUP_CONCAT
:
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
答案 1 :(得分:0)
检索按名字,姓氏排序的所有行。然后将行流式传输到Java应用程序中。打开文件输出流到csv文件。从第一个记录开始,按记录循环记录。虽然名字和姓氏没有改变,但建立一个工作时间列表。当firstname和/或lastname更改时,输出到csv并开始构建新的工作时间列表。