<?php
$mysql_stat=mysql_stat($dbconnect);
$tot_count=preg_match_all('/([a-z ]+):\s*([0-9.]+)/i', $mysql_stat, $matches);
for ($i=0; $i<$tot_count; $i++) {
$info1=$matches[1][$i];
$info2=$matches[2][$i];
echo "$info1 ($info2)<br>";
}
/*
example output:
Uptime (13651)
Threads (1)
Questions (12910)
Slow queries (0)
Opens (314)
Flush tables (1)
Open tables (24)
Queries per second avg (0.945)
*/
?>
mysql_stat
(PHP 4 >= 4.3.0, PHP 5, PECL mysql:1.0)
mysql_stat — 현재 시스템 상태를 반환
설명
string mysql_stat
([ resource $link_identifier
] )
mysql_stat()는 현재 서버 상태를 반환한다.
매개변수
- link_identifier
-
MySQL 연결. 지정하지 않으면 mysql_connect()로 연 마지막 연결을 사용합니다. 연결이 없으면, 매개변수 없이 mysql_connect()를 호출하여 연결을 만듭니다. 연결이 성립되지 않으면 E_WARNING 경고를 생성합니다.
반환값
uptime, threads, queries, open tables, flush tables, queries per second의 상태를 문자열로 반환한다. 그외의 상태 변수를 조회하려면 SHOW STATUS SQL 명령을 사용하면 된다. link_identifier 가 유효하지 않으면, NULL이 반환된다.
예제
Example#1 mysql_stat() 예제
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$status = explode(' ', mysql_stat($link));
print_r($status);
?>
위 예제의 출력 예:
Array ( [0] => Uptime: 5380 [1] => Threads: 2 [2] => Questions: 1321299 [3] => Slow queries: 0 [4] => Opens: 26 [5] => Flush tables: 1 [6] => Open tables: 17 [7] => Queries per second avg: 245.595 )
Example#2 mysql_stat() 다른 예제
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
$result = mysql_query('SHOW VARIABLES', $link);
while ($row = mysql_fetch_assoc($result)) {
echo $row['Variable_name'] . ' = ' . $row['Value'] . "\n";
}
?>
위 예제의 출력 예:
back_log = 50 basedir = /usr/local/ bdb_cache_size = 8388600 bdb_log_buffer_size = 32768 bdb_home = /var/db/mysql/ bdb_max_lock = 10000 bdb_logdir = bdb_shared_data = OFF bdb_tmpdir = /var/tmp/ ...
mysql_stat
Topper_
02-Sep-2008 01:51
02-Sep-2008 01:51
Enzo_01 at abv dot bg
31-May-2008 12:22
31-May-2008 12:22
<?php
// function that return stat elements into array
function mysql_stat_array($A=null) {
$status = explode(' ', mysql_stat());
foreach($status as $k=>$v) { $v=explode(':',$v,2); $status[$v[0]]=$v[1]; }
return (isset($status[$A])?$status[$A]:$status);
}
/*
example return:
Array ( [0] => Uptime: 385815 [1] => Threads: 1 [2] => Questions: 3515 [3] => Slow queries: 0 [4] => Opens: 32 [5] => Flush tables: 1 [6] => Open tables: 8 [7] => Queries per second avg: 0.009 [Uptime] => Array ( [0] => Uptime [1] => 385815 ) [Threads] => Array ( [0] => Threads [1] => 1 ) [Questions] => Array ( [0] => Questions [1] => 3515 ) [Slow queries] => Array ( [0] => Slow queries [1] => 0 ) [Opens] => Array ( [0] => Opens [1] => 32 ) [Flush tables] => Array ( [0] => Flush tables [1] => 1 ) [Open tables] => Array ( [0] => Open tables [1] => 8 ) [Queries per second avg] => Array ( [0] => Queries per second avg [1] => 0.009 ) )
*/
?>
08-Feb-2005 06:16
if you need the complete status as outputted by the "show status" command. Try this function.
<?
function mysql_status($db=NULL) {
if(!mysql_ping($db))
$db=mysql_connect("localhost","user","password");
$res=mysql_query("show status",$db);
while (list($key,$value)=mysql_fetch_array($res))
$sql[$key]=$value;
return $sql;
}
?>
