Всем доброго времени суток! Пытаюсь написать статистику для сайта но не достаточность опыта не позволяет понять верный(гибкий) алгоритм. И так как я вижу сие решение: Вход( start_session set page_name ) записать имя страниц если у данного ip(usera) на сегодняшние сутки нет данной страницы. создаем таблицу бд под сессий пользователей и при старте с любой страницы Insert в бд запишем: ip page_name_1 page_name_2 page_name_.... date(год месец день ) рутины получается довольно много. полагаю 100 пользователей могут создать нагрузку если каждая просмотренная страница будит дергать бд пусть и на insert - что имхо хуже чем select. спасибо всем за внимание! прошу ваших замечаний или наставлений
Если вы хотите сохранять на сервере каждый переход пользователя на каждую страницу то у вас в любом случае будет Insert на этом шаге, либо запись в куку/сессию. 100 insertов это ерунда. и 1000 insertов - это не нагрузки при правильной структуре бд и запросов. Вас беспокоит что этим занимается та же СУБД, которая работает с другими типами запросов? Пишите в какой-нибудь Redis после чего периодически дергайте его записи и пересобирайте в реляционные таблицы статистики-аналитики или что у вас там. В любом случае, решения эти должны приниматься на основе тестирования под предполагаемыми нагрузками, а не гаданий. Если логика обработки данных у вас затратная по времени, естественно пинать её нужно не по запросу страницы с её контроллера, а с клиента jsom, как это делают счетчики статистики.
мне нужен рейтинг страниц что то вроде топ 10 например. у гугла разве есть это .? сможет он в базу записывать
Да у гугла есть, через его API можно запросить данные которые он собрал, там и самые посещаемые страницы должны быть.