Оптимизировать большую таблицу в базе данных

Главные вкладки

Аватар пользователя Shurikl Shurikl 28 апреля 2017 в 11:39

Может кто сталкивался с такой проблемой стоит модуль Node view count он записывает в таблицу просмотры node пользователями. Как оптимизировать или уменьшить размер таблицы nodeviewcount в базе данных размер которой 823.14 МБ. Оптимизация через phpMyAdmin не работает выдает ошибку.
Если удалять вручную строки то после этого сайт не работает.
Подскажите как справится с этой проблемой.

ВложениеРазмер
Иконка изображения screenshot_1.jpg24.67 КБ

Комментарии

Аватар пользователя bsyomov bsyomov 28 апреля 2017 в 13:31

Довольно странный вопрос - либо вам надо хранить эту информацию, либо нет. Природу не обманешь, и если просмотров много данные о них будут занимать много места.

По поводу OPTIMIZE TABLE: это функция во-первых, работает только для myisam таблиц, а во-вторых не уменьшает количество данных, а "дефрагментирует" таблицу, для более шустрого к ним доступа.

Вообще, обычно, все эти счётчики просмотров, совершенно не нужная рюшечка, особенно внутри сайта. К тому же очень "дорогая".

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

Аватар пользователя Shurikl Shurikl 28 апреля 2017 в 16:33

«Вообще, обычно, все эти счётчики просмотров, совершенно не нужная рюшечка, особенно внутри сайта. К тому же очень "дорогая".»
Что имеется в виду под "К тому же дорогая"
Яндекс метрику и Google Analytics я использую.

Аватар пользователя bsyomov bsyomov 28 апреля 2017 в 20:13

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

Если по какой-то причине, статистика посещений внутри сайта вам не критически важна, её просто стоит убрать совсем.

Аватар пользователя sas@drupal.org sas@drupal.org 28 апреля 2017 в 14:26

Варианты:
- Не использовать Node view count, использовать внешние севисы, aka yandex metrika, google analytics
- Чистить таблицу с определенной периодичностью по крону ( синтетику записыть в другую таблмцу, записи старые удалять )

Аватар пользователя Studio VIZA Studio VIZA 29 апреля 2017 в 1:49

Shurikl wrote:

Что имеется в виду под "К тому же дорогая"

То, что величина таблицы это гемор для халявщика-заказчика. Вроде "я заплатила за год 50 р за хостинг, и что то менять и терять своё не намерена!"

Аватар пользователя Shurikl Shurikl 29 апреля 2017 в 18:40

Studio VIZA wrote:

Shurikl написал:

Что имеется в виду под "К тому же дорогая"

То, что величина таблицы это гемор для халявщика-заказчика. Вроде "я заплатила за год 50 р за хостинг, и что то менять и терять своё не намерена!"


Откуда такие выводы «что величина таблицы это гемор для халявщика-заказчика.» у меня довольно дорогой хостинг так как содержу не один сайт на Друпал а также слежу за их состоянием так я не отношусь к категории Заказчика.

Вопрос по этой теме уже решил так что тема закрыта всем спасибо за ответы.