2014-09-27 3 views
0

Вопрос о производительности SQL при выборе «публикации блога» на основе пользовательских просмотров по дате.Mysql performance selection blog post views by date

я хочу записать мнения пользователей каждого поста, и я буду выбирать каждый из них с помощью «ежедневно» и «ежемесячно» в качестве параметров:

PS:

Самые популярные посты дня, или месяц.

Чтобы записать представления, я создал таблицу для вставки после каждой загрузки страницы даты каждого вида.

И они выбирают их (подсчитывают их) по DAY() и MONTH() при необходимости.

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

Один из вариантов, который, как я думал, создавал таблицу для ежедневных записей и другую таблицу для ежемесячных записей, затем на каждой странице загружается код, проверяющий, есть ли строка для выбранной даты, если строки существуют приращение скрипта на него рассчитывается количество просмотров, если это не так, скрипт вставляет строку с представлениями count = 1;

Ps:

Ежедневно Просмотров сообщение ID | Просмотры | Дата

1 | 898 | 2014-07-11

2 | 676 | 2014-07-11

1 | 333 | 2014-07-10

Таким образом, каждый пост может иметь только одну строку в день.

Есть ли лучший вариант? что вы думаете о моей альтернативе? мне не нужно мое предложение?

ответ

0

Я думаю, что лучшим решением является:

  1. Создание таблицы со статистическими данными с полями:

    • идентификатор
    • дата (магазин дата МДГ)
    • день
    • месяц
    • год
    • просмотров (магазин число посещений)
    • страница (магазин блога)

    Уникальной строк в день, и обновление программно по мере необходимости.

  2. Затем вы можете делать запросы с помощью day, month, year поля, даже вы можете добавить WEEKNUM поля, чтобы сделать запросы для получения статистических данных, сгруппированных по неделям.

  3. В качестве дополнения вы можете добавить вторую таблицу для хранения полной даты (m-d-y h: m: s) для каждого посещения, вы можете добавить такие поля, как браузер, ip и т. Д., В эту таблицу.