Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Подсчет запросов при генерации данной страницы


Автор: nezabor 22.4.2011, 19:26
Есть база MySQL
работаю с ней при помощи PHP

если у кого рабочая фича по подсчету количества запросов в базу при генерации страницы

если не хотите делиться скриптом просто спалите алгоритм 

PS
заранее скажу искал ничего путного не нашел, а время тратить на изобретения велосипеда особо нет

Автор: nezabor 22.4.2011, 20:39
еще погуглил но на нашел только в каждый запрос прописывать пересенную которую прибавляю или mysshow status

мне кажется надо копать в сторону второго

Автор: ksnk 22.4.2011, 21:51
show status в строке с именем Questions покажет количество всех запросов, выполненных сервером. Если вычислить это значение на входе и на выходе, получится разница - сколько запросов все клиенты успели выполнить между входом и выходом из скрипта. Если в этот момент работал только один клиент базы - получится количество исполненных запросов.
Хоть что-то  smile 

Автор: skyboy 23.4.2011, 09:33
а если заменить вызов mysql_query на вызов своей функции, которая и mysql_query выполнит, и счетчик увеличит, ты получишь количество гарантированно "только своих" запросов

Автор: nezabor 23.4.2011, 14:07
ksnk, ну я без вычитания
Код

$sqlQ = mysql_query("show status like '%Questions%'");
$sqlN = mysql_num_rows($sqlQ);
$sq = 0;
while ($sq < $sqlN) {
    $sq++;
    $sql = mysql_fetch_assoc($sqlQ);
    print_r ($sql); //либо так
    //print $sql['Variable_name'] . '=' . $sql['Value'];    //либо так 
}


skyboy, есть мнение что для первичного теста достаточно и локальной базы на локальном компьютере, в дальнейшем эта статистика больше интересует не на клиента а на сервер, а иначе получится переработка всего кода - трата времени

Автор: bars80080 23.4.2011, 20:05
Цитата(nezabor @  23.4.2011,  14:07 Найти цитируемый пост)
в дальнейшем эта статистика больше интересует не на клиента а на сервер

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


Цитата(nezabor @  23.4.2011,  14:07 Найти цитируемый пост)
иначе получится переработка всего кода - трата времени

в виду вышеназванного, традиционно при работе используется готовый класс или набор функций для работы с базой, где базовые функции, вроде mysql_query(), уже завёрнуты в пользовательские аналоги. в таком случае прописывание счётчика - минутное дело.
но об этом стоило позаботиться заранее

Автор: Muerto 24.4.2011, 10:59
Если любите ООП, то можно оберточный класс построить для работы с базой данных... кстати я бы на вашем месте работал с PDO, mysql эт прошлое.

Если не хотите ООП, то создаете функцию

Код

functino doQuery(String $queryString){
         global $queryCounter;
         ++$queryCounter;
         return mysql_query($queryString);        
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)