使用Java有效地从数据库中分类数据?

时间:2009-04-28 16:27:58

标签: java database sorting

我们拥有什么:

3个MySQL数据库表:用户,文本,朋友

用户:用户名,密码,电子邮件等

文字:用户名,文字,日期等

朋友:用户名,friend_username等

任务:

编写一个算法(用Java)显示朋友的10条最新文本

最终目标是在 O(n log n)中运行时间。

可以根据需要修改数据库表(添加新表)。

数据量: 200 000个用户,每个用户约50个文本。

我很感激任何想法,例子,要点等等。谢谢!

(不是作业。纯粹的问题,寻找性能改进)

2 个答案:

答案 0 :(得分:3)

你确定必须用Java完成吗?这不是SQL查询吗?

SELECT text
  FROM TEXT
 WHERE username IN
         (
           SELECT friend_username FROM FRIEND WHERE username = 'YOUR_USERNAME'
         )
 ORDER BY date DESC
 LIMIT 10

答案 1 :(得分:1)

你没有说什么数据库,所以我只是做一个假设(下面的Postgres语法):

select t.* from text t
    inner join friend f ON f.friend_username = t.username
    where f.username = 'myusername'
    order by t.date desc
    LIMIT 10