Как лучше всего работать с большими таблицами, такими как thread_views? - PullRequest
0 голосов
/ 13 декабря 2010

Я пытаюсь добавить немного статистики на мои сайты. Например: «самая просматриваемая тема в этот день / неделю / год».

Мне нужна таблица, в которой сохраняются все представления, связанные с пользователем (чтобы избежать того же пользователя, добавляющего много представлений) и потоком, и с отметкой времени.

Но это была бы одна большая таблица (в строках). Это путь?

1 Ответ

0 голосов
/ 13 декабря 2010

Ответ зависит от ряда вещей, таких как количество потоков, количество просмотров, какое у вас оборудование, типичная загрузка, соотношение чтения / записи, требуемая точность и т. Д. И т. Д.

Разумным ответом на ваш вопрос, не зная деталей вашего конкретного сценария, является создание описываемой вами таблицы:

thread_views(
   thread_id references thread(thread_id)
  ,user_id   references user(user_id)
  ,timestamp
  ,primary key(thread_id, user_id)
) 

Приведенный выше подход дает вам гибкость и достаточно хорошую производительность для типичного сценария.

Недавно я ответил на два похожих вопроса, на которые вы можете взглянуть, чтобы получить некоторые идеи.

Количество комментариев к статье и Количество посещений посетителей в день

И наконец, многие из основных баз данных содержат инструменты для агрегирования данных.Эти инструменты позволяют вам иметь нормализованную модель данных, в то же время получая большинство преимуществ благодаря предварительно вычисленной таблице статистики.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...