Какой метод лучше?

DeNsKoY

Пользователь
Регистрация
01.01.70
Сообщения
3
Реакции
0
Баллы
1
Какая структура лучше?

У меня есть собственная CMS, где я хочу отслеживать посещения страниц.
У меня сейчас 2 варианта.

1. Я создаю столбец «СРЕДНИЙ ТЕКСТ» в той же таблице, где хранятся данные страницы,
и я продолжаю добавлять IP/UserAgent в этот столбец при каждой загрузке страницы.
Средний текстовый столбец имеет ограничение в 16 МБ, а мой PHP Memory_limit превышает 30 МБ, поэтому нехватка памяти не является проблемой.
Большинство общих хостов имеют примерно столько же, поэтому даже если сайт переместится, это не будет проблемой.

Проблема в том,
для каждой загрузки страницы во внешнем интерфейсе мне придется извлекать эти 16 МБ данных, добавлять к ним новую строку и обновлять запись таблицы.
Может стать проблемой, если трафик высокий, ресурсы сервера будут слишком перегружены.
CONCAT, похоже, не работает с MediumText и LongText на моем общем сервере, не знаю почему...

2. Я добавляю новую таблицу и сохраняю в ней IP/UserAgent.
Загрузка главной страницы будет быстрее, потребуется только быстрая вставка.
Однако на заднем плане, когда я проверю статистику,
тогда очень огромную таблицу придется читать снова и снова.
Предположим, что страниц 100, тогда данные о посещениях всех 100 страниц будут храниться в этой таблице.
Это может вырасти очень сильно.

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

Однако, если это просто средний текстовый столбец, в самой таблице страниц,
затем я просто извлекаю максимум 16 МБ данных для конкретной страницы и использую PHP для остальной обработки.
Это дешевле на бэкэнде и, вероятно, быстрее.
Какой метод лучше?
Какой из них вы бы предложили?
 

proty

Пользователь
Регистрация
27.10.11
Сообщения
2
Реакции
0
Баллы
1
Статистика AW есть, но она необходима для ведения журнала конкретной страницы, а не всего сайта.
Если быть точным, регистрируйте статистику для конкретной целевой страницы.
Это для бесплатно распространяемой CMS PowerPress в моей подписи.
https://13pp.co.uk/
Некоторые пользователи могут использовать аналитику, другим может потребоваться что-то встроенное.

Я выбрал второе решение — отдельную таблицу и предоставил возможность очистки базы данных в случае возникновения проблем с производительностью.
Работает хорошо, не так ресурсозатратно, как я думал...
 
Сверху Снизу