Forum Webscript.Ru
Программирование => PHP => Тема начата: sublimity от 14 Апреля 2004, 20:37:43
-
Возникла необходимость разработать систему статистики на mysql+php, решил все делать с нуля , a т.к. возможно использование на больших сайтах, то думаю сделать вот какой подход:
1) При каждом запросе добавлять в таблицу, назовем её [tb_static] новую запись (time(),REMOTE_ADDR or HTTP_X_FORWARDED_FOR, REMOTE_HOST , HTTP_USER_AGENT , HTTP_REFERER , REQUEST_URI , SESSION_ID) . Все поля в таблице типа char(255) кроме “time”, первый вопрос правилен ли такой подход ? (важнее скорость нежели размер)
2) Далее каждые 2-а часа cron запускает обработчик который блокирует tb_static !!! далее КОПИРУЕТ её в [tmp_static] , очищает и разблокирует [tb_static] , далее
3) Простые действия с tmp_static :) и все.
Вопрос вот в чем , что лучше с КОПИРОВАТЬ и ОЧИСТЕТЬ таблицу [tb_static] или ПЕРЕЙМЕНОВАТЬ и создать НОВУЮ…
Что быстрее???
-
А зачем ее блокировать?
какая разница, стирать или обнулять?
зачем все копировать из одной в другую?
зачем в счетчике SESSION_ID? Тем более с другого сайта?
зачем REMOTE_HOST?
что будешь делать, если HTTP_X_FORWARDED_FOR содержит больше одного адреса? А что - если поддельный?
-
varchar имхо а не char
-
AliMamed чар быстрее.
другое дело, что для ремоте аддра (который ДОЛЖЕН писаться ВСЕГДА, как единственный не подделываемый адрес) достаточно инта
Другое дело, что всё это - мелкие частности.
Это все равно, что выбирая машину, обсуждать цвет обивки салона.
Не спорю - дело нужное и важное. Но не первостепенное.
Очередной студент, который думает, что счетчики для "больших сайтов" пишут неучи, задав пару вопросов на форумах.
-
RomikChef - зачем блокировать ? х.м. да а так Для порядка !
какая разница, стирать или обнулять?
Вот я и спрашиваю вч ем разница ???
зачем все копировать из одной в другую?
Затем что если и разробатывать то все как надо , а не как всегда через ....х....
зачем в счетчике SESSION_ID? Тем более с другого сайта?
Да вопрос в тему , пока не определился юзать или нет, хочу проверить будут ли различия иль не , дочитайте последние строки (хочу expiri в этом проекте) по некоторым doc`am
Не всегда это число правильное, session – тоже необходимо учитывать !!!,
Так дальше :) :)
Очередной студент, который думает, что счетчики для "больших сайтов" пишут неучи, задав пару вопросов на форумах.
[/B]
Да студент , хм. пара вопросов , да нет один что быстрее , "больших сайтов"
Не небольших чел.100-300 в день по предвору (может и 50) но , на самом деле
Мне хочеться все это попробовать , писать все что то … большое …
Надо набирать опыт ?? Я неправ , Я неправ ?
RomikChef – вы слишком надменно высказываетесь , и сохранение этого сообщение на вашей совести !
Простите повторю вопрос:
Вопрос вот в чем , что лучше с КОПИРОВАТЬ и ОЧИСТЕТЬ таблицу [tb_static] или ПЕРЕЙМЕНОВАТЬ и создать НОВУЮ…
Что быстрее???
-
[off]по-моему ветку либо в юмор, либо в корзину[/off]
-
повторно повторю. свой вопрос.
А зачем тебе быстрота-то?
что такого срочного произойдет в момент копирования?
И еще один повторю - зачем это нужно.
Если не сможешь ответить на эти два простых вопроса, то тема действительно, пойдет туда, куда Али сказал.
Здесь не любят отвечать на бессмысленные вопросы, автор которых и сам не значет, что он делает и зачем.
Про сессии уж так и быть, я тебя терзать не буду. Из той белиберды, что ты тут написал, ясно, что ты не понимаешь, что это такое и собираешься попытаться применить совсем не к месту. Ну да когда попробуешь - убедишься, а до тех пор чего зря тебе что-то объяснять. Ты же умнее всех тут. все рассчитал, все спланировал БЕЗУПРЕЧНО, и только один вопрос остался.
-
RomikChef попробую объяснить. Человеку нужно сделать статистику всяких UserAgent\'ов, которыми лезут к нему на сайт. Для этого он и делает свою большую таблицу (только не знаю, зачем туда совать session_id). Ему в итоге нужно будет вытащить статистику, допустим, за день, за неделю и за месяц. Я пока не особо понял, что он будет делать с откопированной таблицей, но подозреваю, что срочность ему нужна для того, чтобы зашедшие в момент копирования агенты были учтены. Вроде так :)
-
только не знаю, зачем туда совать session_id
Народ Дайте немного времени либо опровергну , либо докажу...
НО по СТАТИСТИКе SpyLog-а есть пункты:(посетители, СЕССИИ, хосты, хиты)
Пример:(по дням)
понед. пос:118% Ses:125% Xoc:118% Xиt:123%
втор. пос:118% Ses:122% Xoc:118% Xиt:121%
и т.д. и т.п.
[!Источник H&S "Рунет в цифрах и фактах" авт.:Тимур Токуров!]
hanslinger прав именно энто я и хочу сделать, я нехочу терять ни чего , да я прекрасно понимаю что это чушь статистика это нето место где критична потеря одной записи !!!
Но всетаки нехочеться даже крох терят.
Разве нельза просто ответить ? что быстрее ? RomikChef ты незнаеш ответа на этот вопрос?
задав пару вопросов на форумах.
У меня еще вопрос:
Как переместить даныыйе из одной таблици в другую
(Таблицы одинаковые) ... без php ???
Ответьте для таких ... как я .................
-
sublimity:
ты незнаеш ответа
за такие заявы буду бить по голове. И не я один.
Прекрати строить из себя гения. Ты лох. Слушай, что тебе говорят, и не тявкай.
hanslinger, значит, так. А НУ БРЫСЬ из этой темы, чтобы я духу твоего здесь не видел с ламерскими замечаниями. И это ТЫ МНЕ БУДЕШЬ рассказывать что такое счетчики? сопли подбери, считальщик "юзер-агентов". Уже за одну эту фразу на тебе можно крест ставить. Все, исчез. Если есть вопросы - создай отдельный топик или приватом.
-
Вы оба, гении сопливые.
Ответьте на вопрос, с какого перепоя вы решили, что
зашедшие в момент копирования агенты не будут учтены
Для ханслингера этот вопрос риторический. Для самостоятельной работы.
Следующий.
Если я спрашиваю, на кой тебе измерять скорость, то не потому, что не знаю ответа, дурилка картонная, а потому ,что ты не можешь объяснить, что ты делаешь.
потому, что сам не знаешь ни бельмеса.
Далее, по сессиям.
Объясняю для недалеких. Сессии в спайлоге и сессии в пхп - это СОВЕРШЕННО РАЗНЫЕ ВЕЩИ. Сессии в спайлоге вычисляются ПОСТФАКТУМ. Они не записываются. Они вычисляются.
Самое грустное, что эта обезьяна никак не может признать, что она НИЧЕГОШЕНЬКИ не знает. Процентов 5. То, что на поверхности.
Базу данных с голимым файлом путает. В терминах слышал звон, да не знает, где он.
Тупо оалдычит про единственную проблему, высосанную из пальца, и не желает обращать внимание на те, в которые его носом тычут.
Ведь и сейчас это чудо начнет обижаться и обвинять других в незнании ответа на нужный ему вопрос.
Правда, обосновать этот вопрос он не в состоянии
-
sublimity, ты согласен с ханслингером в том, что ты считаешь юзер-агентов?
-
[OFF]я так понял, что мне в ман по мускулю :)[/OFF]
-
проблема в том .что человек хочет лочить таблицу.
при этом путает таблицу с голимым файлом.
и сколько его не спрашивай - он так и неможет объяснить, - зачем лочить таблицу, из которой он собрался что-то стирать?
-
RomikChef спасибо за разъяснения по поводу сессий.
Tы согласен с ханслингером в том, что ты считаешь юзер-агентов?
Нет, буду делать подсчеты по :
:) Числу загрузок странички (просто подсчет строк)
:) Число пользователей , RomikChef вот тут уж помажи , ТОЛЬКО
plz. Давай не будим разводить дискуссию о том кто что умеет и кому нужен платок извините…
Число пользователей – вычислять по числу (REMOTE_HOST) and (REMOTE_ADDR or HTTP_X..) где он у них одинаковый , значит пользователь,
Вот сюда бы я и сунул бы ses_id , чтобы уменьшить запросы , т.к.
Сервер уже позаботился об этом???. :-?
Тогда сократилось бы таблица и запросы, чего не знаю того не знаю , поэтому и спрашиваю .
:) Время поведенное пользователям, если получиться
:) Страница (точнее директории) которые посещает пользователь а какие нет,
… считаешь юзер-агентов?
:) Из них берем ишак это или опера …
:) Загоняем далее по дням
:) В отдельную табличку загоняем откуда пришел пользователь,
пытаемся определить с какого поисковика пользователь и с каким запросом ,
позволит определить где менее индексирован сайт или …
...
зашедшие в момент копирования агенты не будут учтены
Они будут учтены если не делать lock – table , и не будут учтены …
RomikChef Я понимаю что это все ненужный геморрой , но мне просто для души интересно что
Быстрее? – ПОЖАЛУСТА ОТВЕТЬ НА ЭТОТ ВОПРОС.
спасиб,
а как это все сделать?
-
RomikChef
погоди. мы считаем обращения - так? если, скажем, remote_addr уже есть, в таблицу не добавляем. естественно, мы не юзер-агентов считаем. про лок/анлок в мане, видимо, есть, и туда sublimity надо направить. так?
-
а как это все сделать?
а это уже точно в ман. я видел там примеры по локу. от тебя пытаются добиться не этого. а твоего ответа на вопрос "зачем ты это делаешь?"
-
sublimity
а почему бы тебе не взять за основу ту статистику, которую ты здесь приводил?
пос:118% Ses:125% Xoc:118% Xиt:123%
почему бы тебе, для ясности, не привести свой скисок вот к этому виду? что у тебя пос, что хост, что хит?
Число пользователей – вычислять по числу (REMOTE_HOST) and (REMOTE_ADDR or HTTP_X..) где он у них одинаковый , значит пользователь,
неправильно.
по ремоте _аддр вычисляются ХОСТЫ, поскольку ремоте аддр - это хост и есть.
Вот сюда бы я и сунул бы ses_id , чтобы уменьшить запросы , т.к.
Сервер уже позаботился об этом???. :-?
ты тормозишь.
На чужих хостах у тебя никаких сессий не будет.
Сервер ни о чем не заботится, самому надо.
sublimity:
Время поведенное пользователям, если получиться
это и есть сессия.
все равно считать
sublimity:
Страница (точнее директории)
почему только директории?
hanslinger:
Они будут учтены если не делать lock – table , и не будут учтены …
ну так поскольку лочить ничего не нужно, то и вопрос бессмысленный.
я рад, что ты это понял
-
сколько его не спрашивай - он так и неможет объяснить, - зачем лочить таблицу
Давайте забьем на lock .
Ты предлагаешь при каждом обновлении странички производить все эти действия?
Как? Какие предложения?
RomikChef Только плз. не кричи что не берись что ты сопляк , т .д. и т.п. я это и так знаю прекрасно … Я хочу научиться , а …
-
RomikChef
почему только директории?
Сайт построен без страниц вообще , т.е.
http://www.xxxx.xx/products/
http://www.xxxx.xx/products/company/
http://www.xxxx.xx/admin/
http://www.xxxx.xx/admin/add/
У же непомню какие там пути , только один физический
http://www.xxxx.xx/images/
Число пользователей – вычислять по числу (REMOTE_HOST) and (REMOTE_ADDR or HTTP_X..) где он у них одинаковый , значит пользователь,неправильно.
как правельно?
Как грамотно определить чувак с проки или нет?
Через HTTP_PROXY_CONNECTION ?
или
HTTP_USER_AGENT может быть добавлено " via характеристика_proxy"
HTTP_VIA ?
С уважением
-
http://php.spb.ru/mysql/lock_tables.html
[ссылки надо ставить на оригинал, а не на всякое ворье]
-
Ты предлагаешь при каждом обновлении странички производить все эти действия?
какие такие действия?
Сначала покажи мне счетчик, который выводит ВСЕ это.
Счетчики выводят хиты, хосты и сколько сейчас на сайте.
Дальше.
пока ты не описал четкой перспективы - что будешь делать со второй таблицей. пока ты не описал отличий от работы с одной и той же.
sublimity:
Сайт построен без страниц вообще , т.е.
это не директории, это и есть страницы.
sublimity:
[url]ссылка про локи в таблицах
хоссспидя :-)
сколько уже Диму пинали за эту статью :-)
забудь.
блокировка в ТЕБЕ вообще никаким боком не нужна.
бокировать надо только на одновременную ЗАПИСЬ
А у тебя ПОСЛЕДОВАТЕЛЬНАЯ.
По поводу посетителей.
Повторяю для слабослышащих.
IP адрес - это НЕ ПОСЕТИТЕЛЬ! это ХОСТ
поэтому все твои вопросы к форвардед фор относятся к ХОСТАМ, а не к посетителям.
п поводу хостов.
Делаешь ДВА поля.
1 - ремоте_аддр.
второе - чар 255, в него сваливаешь все остальные адреса.
-
а ругаться и обывать тебя сопляом у меня никакого жедлания, если ты начинаешь слушать, что тебе говорят, и задавать вопросы, а не талдычить один и тот же :-)
-
Сорри за тупой вопрос: "все остальные адреса" - это что? HTTP_HOST, REMOTE_HOST, SERVER_NAME? Не бей только :)
-
открой свой пхпинфо и посмотри
-
это не директории, это и есть страницы.
Это просто термины , я прекрасно понимаю ,на просто привык Ж-( говорить дир. когда рассказывал структуру диз-ниру.
Сначала покажи мне счетчик, который выводит ВСЕ это.
топик называеться система статистики !!!!!!!! на mysql+php
счетчик??
Заново и подробно :
При каждом обновлении страницы в таблицу записыветься одна строка, user кликнул по сылки новая строка , еще строка и т.д....
Потом каждые два часа читаеться эта таблица и происходит сортировка информации , в соотвествующие таблиц.
user в день (понед, втор...) , и ...
RomikChef если тебе надоело все это то ответь на вопрос :
Как перенести запись из одной таблици в другую без использования php??
Спасиб.
-
RomikChef
сегодня туплю. сорри. надо меньше есть на работе и лучше проветривать...
sublimity
используя MySQL!! почитай ман, говорю же тебе, там все это замечательно описано!!!
-
hanslinger:
При каждом обновлении страницы в таблицу записыветься одна строка, user кликнул по сылки новая строка , еще строка и т.д....
Если ты об этом, то я ДА, предланаю именно это и делать при каждой загрузке счетчика.
hanslinger:
происходит сортировка информации , в соотвествующие таблиц.
user в день (понед, втор...) , и ...
ЧЕГО????
Во-первых, какая еще СОРТИРОВКА? снова отвечай - ЗАЧЕМ что-то сортировать?
Во-вторых, какие еще таблицы "user в день " - это еще что за галиматься?
ты можешь объяснить, зачем тебе такой бред - "таблица user в день "?
И скакой стати я буду отвечать на вопрос, в котором не вижу ни капли смысла?
-
[OFF]Почему написано, что ты меня цитируешь?[/OFF]
-
RomikChef !!! hanslinger прав !!!!!
Завесь бред несу я ответственность а не hanslinger !!!!
"все остальные адреса" - это что? HTTP_HOST, REMOTE_HOST, SERVER_NAME? Не бей только
Глянь http://ad.tbn.ru/bb.cgi?cmd=ad&hreftarget=_top&pubid=117848&pg=1&vbn=189&w=468&h=60&num=1&r=ssi&ssi=nofillers&r=ssi&nocache=260079&ref=&loc=http%3A//board.h1.ru/articles/perl%26cgi/env.html
http://board.h1.ru/articles/perl%26cgi/env.html
ЧЕГО????
Во-первых, какая еще СОРТИРОВКА? снова отвечай - ЗАЧЕМ что-то сортировать?
Во-вторых, какие еще таблицы "user в день " - это еще что за галиматься?
ты можешь объяснить, зачем тебе такой бред - "таблица user в день "?
И скакой стати я буду отвечать на вопрос, в котором не вижу ни капли смысла?
Прости не сортировка а разброс информации по таблицам!....
!!!!!!!!!!!!!
Webscript.RU
Создание системы учета посещений
http://www.webscript.ru/stories.php3?story=18
!!!!!!!!!!!!!!
-
sublimity:
Как перенести запись из одной таблици в другую без использования php??
ЕЩе один лентяй
CREATE TABLE dest_table SELECT * FROM source_table
-
sublimity:
Как перенести запись из одной таблици в другую без использования php??
hanslinger:
используя MySQL!! почитай ман, говорю же тебе, там все это замечательно описано!!!
поподробнее, если можно ;-)
-
Aku Aku
http://www.mysql.com
[off]
весенее обострение в массах так и прет
[/off]
-
ThE0ReTiC
а запрос чем отправлять? через PHPMyAdmin? каждые два часа?
ты вопрос сначала внимательно прочитай, а потом глобальными ссылками кидайся
-
Aku Aku
ты совсем дурак, или прикалываешься?
а что мешает на перле?
а что мешает на С?
а что мешает на Java?
да чем угодно запрос отправляй.
или ты хочешь по щелчку пальцев все получить?
-
1. не я а sublimity (хочет по щелчку пальцев все получить)
2. я не думаю что его устроит вариант с жавой или перлом, тебе не кажется глупым счетчик, который пишет в одну таблицу на PHP а в другую на Perl/Java/C ?
3. смени тон
-
1.
Aku Aku:
а запрос чем отправлять? через PHPMyAdmin? каждые два часа?
Твой вопрос? Твой.
2. Я вообще считаю что трюки с копированием таблиц в данной ситуации - полный идиотизм
3. И не подумаю. Если бы добрых 60% посетителей этого форума жило бы по принципу RTFM | STFW то подобных вопросов не звучало бы. Посему ногами буду бить нещадно прям по голове.
-
попытаюсь тебе обьяснить:
человек спрашивает: может ли он *не используя PHP* перенести запись (заметь не создать таблицу на основе выборки) из одной таблицы в другую (причем в автоматическом режиме - каждые два часа). При этом он явно не имеет ввиду другие языки программирования.
Его же, с очень умным видом отправляют в ман по MYSQL, где все это "подробно описано".
потом приходит "главный по тарелочкам" и бьет всех по голове.
clear?
-
А можно кое что сказать
CREATE TABLE dest_table SELECT * FROM source_table
Спасибо!!!!!!!!!!!!!!!!!!
больше мне ничего ненужно от этой жизни !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Aku Aku
ThE0ReTiC
Народ спасибо !!!!
Только я написал каждые два три часа (cron) запускаем php и
выполняю свои грязные дела !
Aku Aku - спасиб - что облегчил накал
ThE0ReTiC - НАКОНЕЦ увидел то что искал последнии 2-часа
hanslinger - спасиб ...
И не подумаю. Если бы добрых 60% посетителей этого форума жило бы по принципу RTFM | STFW то подобных вопросов не звучало бы. Посему ногами буду бить нещадно прям по голове.
ThE0ReTiC
RomikChef
НАРОД - напишите при заходе на форум в php
НЕ ДЛЯ ЧАЙНИКОВ И НЕЗАДОВАЙТЕ ТУПЫХ ВОПРОСОВ!!!!!!!!!
Бесите - нато он и форум чтобы помагать , а не пон. кидать ...........
Или вы хатите плавать в своём озере с чистинькой водичкой ????
Но всеравно спасиб . .. день проходит весело!
Власть имущий не власть дающий!
-
А мне-то за что?
Aku Aku
не используя PHP
явно не имеет ввиду другие языки программирования
Любопытная конструкция, в общем...
-
hanslinger
Да так за компанию!
-
ладно. проехали. теперь по делу
зачем тебе вообще нужна временная таблица?
Если критична скорость, собирай все нужные тебе данные в одной таблице. И например раз в день забирай их оттуда и раскидывай по таблицам где они будут храниться постоянно. Лочить ничего не нужно, а тем более создавать временные таблицы.
-
Все бы так заморачивались...
-
товарищ поимел, что ему нужно, больше у него вопросов нет.
я очень на деюсь, что и в будущем больше никаких не возникнет
все в сад.