Счетчик посещений: какие оптимизации?

uncle17

все же: как это считается, если для каждого визитера нужно поймать, кто, откуда, куда и когда, и при этом не нагружать базу при запросе отчетов?
Да и при инсертах не хочется 399% загрузки MySQL, блин.
Порядок - 1Е+7 записей в месяц, отведено на это четверть трехгодичной давности сервера (380 G4) по ресурсам
Как вообще это делается?

iakobi91

а скопировать базу и смотреть с другого серва/компа низя?

hwh2010

ну скажите же кто-нибудь ему !
а то он так и помрёт, не увидев СУБД

karkar

А нафиг тут база с инсертами? Сервер пишет логи, это дешево и вообще не нагружает. Логи потом собираешь и анализируешь отдельно - или специальным софтом, или путем разовой загрузки в отдельную базу для анализа. Есть и промежуточные решения типа вебалайзера, когда он раз в сутки берет очередную порцию логов и добавляет в накапливаемую статистику.

uncle17

в логах реферер пишется?
Вообще вопрос в том, как работают сторонние счетчики: хочется написать свое подобие их, чтоб работало так же быстро

Sharp

Если тебе вот прям так сильно нужна статистика про каждого клиента и прям в реалтайме на нагруженном сервере, то тебе спасет только установка какого-то F5 Big-IP перед твоим сервером, который будет вести тебе статистику в реальном времени, а ты будешь с некоторой периодичностью забирать ее в базу.
Но когда обыкновенным людям надо получать статистику, обычно отказываются от идеи realtime-а, и первичные данные собирают чем-то несложным и одновременно быстрым (это может быть даже самописная программа, а может просто какой-то разборщик логов а потом уже полученные и агрегированные данные сохраняют в базе данных для анализа и репортинга.

uncle17

реалтайм для обработки не нужен, ага, но вот сбор первичных данных грузит базу оч сильно.
А, да, еще забыл добавить: доступ к серваку у меня ограничен
З.Ы. статистика про каждого клиента нужна, чтоб знать, откуда он на какую страницу сайта пришел

karkar

Да, реферер пишется обычно.
Вот пример того, что можно делать с логами:
http://thedeemon.livejournal.com/4213.html

serega1604

>в логах реферер пишется?
бля, ты логов никогда не видел в своей жизни что-ли?

AlexV769

Чтобы правда стала правдой, на таблицы придется навешивать индексы.
Пациент в его текущем состоянии этого ниасилит, поэтому что ни советуй, всё впустую.

AlexV769

реалтайм для обработки не нужен, ага
нахрена тогда действительно весь этот шлак писать в БД?

AlexV769

Да, кстати.
InnoDB в некоторых случаях сосет по производительности, если сравнивать с MyISAM ROW_FORMAT=FIXED и пользованием INSERT DELAYED.
Случай достаточно вырожден, но тем не менее

uncle17

ясно, короче...
спасибо хоть, что не заминусовали в аццкий минус...
Как-то я всё это не так изначально решил делать...
Можно сносить в мусор, ага
Оставить комментарий
Имя или ник:
Комментарий: