php計算整個mysql數據庫的大小

cf46d 9年前發布 | 2K 次閱讀 PHP

php計算連接的mysql數據庫的大小,用MB,KB或者GB的格式返回

function CalcFullDatabaseSize($database, $db) {

    $tables = mysql_list_tables($database, $db);
    if (!$tables) { return -1; }

    $table_count = mysql_num_rows($tables);
    $size = 0;

    for ($i=0; $i < $table_count; $i++) {
        $tname = mysql_tablename($tables, $i);
        $r = mysql_query("SHOW TABLE STATUS FROM ".$database." LIKE '".$tname."'");
        $data = mysql_fetch_array($r);
        $size += ($data['Index_length'] + $data['Data_length']);
    };

    $units = array(' B', ' KB', ' MB', ' GB', ' TB');
    for ($i = 0; $size > 1024; $i++) { $size /= 1024; }
    return round($size, 2).$units[$i];
}


/*
** Example:
*/

// open mysql connection:
$handle = mysql_connect('localhost', 'user', 'password');

if (!$handle) { die('Connection failed!'); }

// get the size of all tables in this database:
print CalcFullDatabaseSize('customer1234', $handle);
// --> returns something like: 484.2 KB

// close connection:
mysql_close($handle);

 本文由用戶 cf46d 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!