Dimonaliza
10.07.2016 - 19:24
Привет!
У меня вопрос, нужно ли делать для подсчета количества просмотров какой нибудь страницы (например объявления, статьи и тд) отдельную таблицу mysql?
Если таблица с просматриваемой сущностью большая, то писать в нее будет наверно не айс при каждом просмотре....
Заранее спасибо за совет!
Valick
11.07.2016 - 10:34
таблицу для одной страницы?
для другой страницы еще таблицу?
_____________
Стимулятор ~yoomoney - 41001303250491
jetistyum
11.07.2016 - 17:54
У вас же где-то хранится запись, которая выводится на странице, можно просто добавить в эту табличку поле со счетчиком. Увеличивать его на 1 при просмотре не вызовет оверхед
Если сайт небольшой - в одну таблицу
если средний - на каждый раздел по таблице
чем больше страниц, тем больше логических точек для создания таблиц
Правильнее наверно переформулировать, какое количество столбцов вытянет DB с одной строкой, которая будет обновляться при каждом просмотре страницы..
_____________
Принимаю заказы, писать в ЛС
Dimonaliza
11.07.2016 - 20:21
Понял, всем спасибо!
Valick
11.07.2016 - 20:23
Медведь, был бы я администратором форума, то за такие советы забанил бы на недельку для профилактики.
1 сущность - 1 таблица
+ по 1 таблице на каждое отношение "многие ко многим" между этими сущностями
_____________
Стимулятор ~yoomoney - 41001303250491
Цитата (Медведь @ 11.07.2016 - 18:25) |
Если сайт небольшой - в одну таблицу если средний - на каждый раздел по таблице чем больше страниц, тем больше логических точек для создания таблиц
Правильнее наверно переформулировать, какое количество столбцов вытянет DB с одной строкой, которая будет обновляться при каждом просмотре страницы.. |
Рублика "Кустарный хайлоад"
А по тему, я такого никогда не делал. Но я бы, прокрутил у себя такой вариант. Актуальные счетчики я бы хранил в мемкеше (с установкой по истечению срока), периодически бы выгражал из мемкэша(по работе) в бд эти счетчики. Но это шибко мудрено и скорей всего нужно только в хайлоаде.
Для обычного бложика подойдет таблица с полями:
Цитата |
id|parent_type|parent_id|counter |
c идексом на parent_type и на parent_id, движком InnoDB и транзакциями
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Zzepish
11.07.2016 - 20:53
Dimonaliza
Медведь
Вы втираете какую-то дичь!
FatCat
12.07.2016 - 01:11
Цитата (jetistyum @ 11.07.2016 - 16:54) |
просто добавить в эту табличку поле со счетчиком |
Да.
И у нас на форуме так сделано.
Цитата (chee @ 11.07.2016 - 19:39) |
Для обычного бложика подойдет таблица с полями |
И джойнить таблицу? А нафига?
_____________
Бесплатному сыру в дырки не заглядывают...
Цитата (Valick @ 11.07.2016 - 20:23) |
Медведь, был бы я администратором форума, то за такие советы забанил бы на недельку для профилактики. |
На 500.000 страниц например? )
Что касается к существующей таблице добавить поле - вариант хороший, если позволяет структура, но не всегда.
_____________
Принимаю заказы, писать в ЛС
Гость_glock18
12.07.2016 - 08:52
Даешь Валику власть!
Valick
12.07.2016 - 09:25
Гость_glock18, ненадо... власть страшная штука... не хочу на тёмную сторону
_____________
Стимулятор ~yoomoney - 41001303250491
FatCat
12.07.2016 - 10:30
Цитата (Медведь @ 12.07.2016 - 03:03) |
добавить поле - вариант хороший, если позволяет структура, но не всегда |
Можно пример структуры, при которой добавление поля счетчика будет менее экономным, чем создание новой таблицы для счетчика?
_____________
Бесплатному сыру в дырки не заглядывают...
AllesKlar
12.07.2016 - 15:54
Цитата (FatCat @ 12.07.2016 - 08:30) |
Цитата (Медведь @ 12.07.2016 - 03:03) | добавить поле - вариант хороший, если позволяет структура, но не всегда |
Можно пример структуры, при которой добавление поля счетчика будет менее экономным, чем создание новой таблицы для счетчика?
|
Ну, если требуется динамические поля для статистики.
Например, для одного типа статей интересует только количество просмотров, для другого + геолокация, для третьего + юзер агент.
Пример высосан из пальца, конечно, но ты хотел пример
А если для всех условия равны, то да, конечно, таблицу расширять.
_____________
[продано копирайтерам]
Цитата (FatCat @ 12.07.2016 - 01:11) |
И джойнить таблицу? А нафига? |
Что бы на разные типы страниц можно счетчик было весить.
+ нормализация бд же.
Можно отдельным запросом выбирать, можно джойнить, нагрузка будет маленькая за счет индексов и малого размера данных.
_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.