[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Нужна ли отдельная таблица
Страницы: 1, 2
Dimonaliza
Привет!
У меня вопрос, нужно ли делать для подсчета количества просмотров какой нибудь страницы (например объявления, статьи и тд) отдельную таблицу mysql?
Если таблица с просматриваемой сущностью большая, то писать в нее будет наверно не айс при каждом просмотре....
Заранее спасибо за совет! smile.gif
Valick
таблицу для одной страницы?
для другой страницы еще таблицу?

_____________
Стимулятор ~yoomoney - 41001303250491
jetistyum
У вас же где-то хранится запись, которая выводится на странице, можно просто добавить в эту табличку поле со счетчиком. Увеличивать его на 1 при просмотре не вызовет оверхед
Миша
Если сайт небольшой - в одну таблицу
если средний - на каждый раздел по таблице
чем больше страниц, тем больше логических точек для создания таблиц

Правильнее наверно переформулировать, какое количество столбцов вытянет DB с одной строкой, которая будет обновляться при каждом просмотре страницы..

_____________
Принимаю заказы, писать в ЛС
Dimonaliza
Понял, всем спасибо!
Valick
Медведь, был бы я администратором форума, то за такие советы забанил бы на недельку для профилактики.
1 сущность - 1 таблица
+ по 1 таблице на каждое отношение "многие ко многим" между этими сущностями


_____________
Стимулятор ~yoomoney - 41001303250491
chee
Цитата (Медведь @ 11.07.2016 - 18:25)
Если сайт небольшой - в одну таблицу
если средний - на каждый раздел по таблице
чем больше страниц, тем больше логических точек для создания таблиц

Правильнее наверно переформулировать, какое количество столбцов вытянет DB с одной строкой, которая будет обновляться при каждом просмотре страницы..

Рублика "Кустарный хайлоад"

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

Для обычного бложика подойдет таблица с полями:
Цитата
id|parent_type|parent_id|counter

c идексом на parent_type и на parent_id, движком InnoDB и транзакциями


_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Zzepish
Dimonaliza
Медведь
Вы втираете какую-то дичь!
FatCat
Цитата (jetistyum @ 11.07.2016 - 16:54)
просто добавить в эту табличку поле со счетчиком

Да.
И у нас на форуме так сделано.


Цитата (chee @ 11.07.2016 - 19:39)
Для обычного бложика подойдет таблица с полями

И джойнить таблицу? А нафига?

_____________
Бесплатному сыру в дырки не заглядывают...
Миша
Цитата (Valick @ 11.07.2016 - 20:23)
Медведь, был бы я администратором форума, то за такие советы забанил бы на недельку для профилактики.

На 500.000 страниц например? )

Что касается к существующей таблице добавить поле - вариант хороший, если позволяет структура, но не всегда.

_____________
Принимаю заказы, писать в ЛС
Гость_glock18
Даешь Валику власть! rolleyes.gif
Valick
Гость_glock18, ненадо... власть страшная штука... не хочу на тёмную сторону smile.gif


_____________
Стимулятор ~yoomoney - 41001303250491
FatCat
Цитата (Медведь @ 12.07.2016 - 03:03)
добавить поле - вариант хороший, если позволяет структура, но не всегда

Можно пример структуры, при которой добавление поля счетчика будет менее экономным, чем создание новой таблицы для счетчика?

_____________
Бесплатному сыру в дырки не заглядывают...
AllesKlar
Цитата (FatCat @ 12.07.2016 - 08:30)
Цитата (Медведь @ 12.07.2016 - 03:03)
добавить поле - вариант хороший, если позволяет структура, но не всегда

Можно пример структуры, при которой добавление поля счетчика будет менее экономным, чем создание новой таблицы для счетчика?

Ну, если требуется динамические поля для статистики.
Например, для одного типа статей интересует только количество просмотров, для другого + геолокация, для третьего + юзер агент.

Пример высосан из пальца, конечно, но ты хотел пример smile.gif

А если для всех условия равны, то да, конечно, таблицу расширять.

_____________
[продано копирайтерам]
chee
Цитата (FatCat @ 12.07.2016 - 01:11)
И джойнить таблицу? А нафига?

Что бы на разные типы страниц можно счетчик было весить.
+ нормализация бд же.

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

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.