Колко заявки имам на страница

oniq

Registered
Здравейте, тъй като искам да си направя по-лесна работата искам да имам под сайта, който правя следното...



Код:
Mysql Querys ( 12 )
Time: 2121.123 - " SELECT * FROM table "
Time: 121.123   - " SELECT * FROM table WHERE name = 'name'  "

Да мога и аз да си следя и да оптимизирвам mysql заявките си лесно.
Поздрави
 
oniq каза:
Здравейте, тъй като искам да си направя по-лесна работата искам да имам под сайта, който правя следното...



Код:
Mysql Querys ( 12 )
Time: 2121.123 - " SELECT * FROM table "
Time: 121.123   - " SELECT * FROM table WHERE name = 'name'  "

Да мога и аз да си следя и да оптимизирвам mysql заявките си лесно.
Поздрави
PHP:
class MySQLOptimisition{


private $mysqlDump = array();


public QuerySql($sql)
{
 $starttime = microtime();
$query = mysql_query($sql);
$endtime = microtime();
 /* ********************/
$time = $endtime - $starttime;

$arrayCount =  count($mysqlDump)+1;

$mysqlDump[$arrayCount]  =  " Time : {$time} -  ' {$sql} ' ; \n ";

}


public showStats()
{
print_r($mysqlDump);

}



}


НЕ съм го пробвал. Написах го на бързо.
Идеята : Вземаш микровремето преди и след заявката. Изваждаш след от преди и получаваш времето за което е изпълнена.
И накрая в дъното на сайта, след като няма нищо вече , извикваш
примерно :
PHP:
$MysqlQuery  = new MySQLOptimisition();
$MysqlQuery->QuerySql("SELECT * FROM `table`");

$MysqlQuery->showStats();
 
[sql]SET profiling = 1;[/sql]

....изпълняваш си заявките и на края виж резултата от....

[sql]SHOW PROFILES;[/sql]

Доста по-подробно обяснение има тук. Има възможност да взимаш информация за всяка заявка по отделно, може да получаваш информация за отделни видове заявки (само INSERT или INSERT и UPDATE и т.н.), може да получиш информация за използвата памет, процесор и т.н. Но най-вероятно show profiles ще ти бъде достатъчно.

Ако пък ползваш който и да е от всеки съвременен framework, всеки от тях идва с някакъв собствен профайлър, например Zend_Db_Profiler
 

Back
Горе