Эффективно сортировать данные из БД с помощью Java? - PullRequest
0 голосов
/ 28 апреля 2009

Что имеем:

3 таблицы MySQL DB: пользователь, текст, друг

пользователь : имя пользователя, пароль, адрес электронной почты и т. Д.

текст : имя пользователя, текст, дата и т. Д.

друг : имя пользователя, имя_пользователя и т. Д.

Задача:

Напишите алгоритм (на Java), чтобы показывал 10 последних текстов от ваших друзей .

Конечная цель - иметь время выполнения в пределах O (n log n) .

Таблицы БД могут быть изменены (добавлены новые) по мере необходимости.

Объем данных: 200 000 пользователей, ~ 50 текстов на пользователя.

Буду признателен за любые идеи, примеры, замечания и т. Д. Спасибо!

(не домашнее задание. Чистая проблема, ищите улучшения производительности)

Ответы [ 2 ]

3 голосов
/ 28 апреля 2009

Вы уверены, что это должно быть сделано на 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 голос
/ 28 апреля 2009

Вы не сказали, что за база данных, поэтому я просто сделаю предположение (синтаксис 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...