Размеры базы MySQL

При написании баннерной системы мне нужно было следить за объемом БД сайта, т.к. хостер предоставляет экстремально малое количество места под mysql базу. После поиска в Гугле наткнулся на неплохой скрипт:

<?php

mysql_select_db($sql_base) or die("Could not select database");

function formatfilesize( $data ) {

// Выводит в байтах
if( $data < 1024 ) {
return $data . " bytes";
}

// Выводит в килобайтах
else if( $data < 1024000 ) {
return round( ( $data / 1024 ), 1 ) . "kb";
}

// Выводит в мегабайтах
else {
return round( ( $data / 1024000 ), 1 ) . " mb";
}}

$result = mysql_query( "SHOW TABLE STATUS" );
$dbsize = 0;

while( $row = mysql_fetch_array( $result ) ) {
$dbsize += $row[ "Data_length" ] + $row[ "Index_length" ];
}

echo "<p>Размер базы данных составляет " . formatfilesize( $dbsize ) . "</p>";

?>


Также рекомендую следующие записи:


Понравилась статья? Подпишись на обновления по RSS, E-mail или добавляйте меня в Twitter.

Один комментарий


Dimonyga пишет:
12.10.2010 в 17:44

$row = mysql_fetch_array( $result ) можно заменить на
$row = mysql_fetch_assoc( $result ) это займёт в 2 раза меньше памяти, так как числовые индексы нам не нужны. а также изменить вывод в килобайтах на кило мега гига итд, делается след образом:
$a=array('Байт','Килобайл','Мегабайт','Гигабайт','Терабайт');
$i=0;
while ($data>1024){
$i++;
$data/=1024;
}
return $data.$a[$i];


Оставить комментарий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>