размер базы данных MySQL через php

Как получить размер базы данных (БД) MySQL используя PHP.
Для начала потребуется простая функция formatfilesize(), которая будет преобразовывать размер в байтах в более “читаемый вид”.


function formatfilesize( $data ) {

// bytes
if( $data < 1024 ) {

return $data . " bytes";

}
// kilobytes
else if( $data < 1024000 ) {

return round( ( $data / 1024 ), 1 ) . "k";

}
// megabytes
else {

return round( ( $data / 1024000 ), 1 ) . " MB";

}

}

?>

Далее необходимо подключиться к самой базе данных MySQL, чтобы узнать ее размер.
Определим переменную, которая будет содержать имя нашей базы данных. Замените “databasename” на имя своей базы данных:

$dbname = "databasename";

?>
Осталось главное – вычислить размер БД. Это делается очень просто – необходимо просто пройтись по каждой таблице БД сложить размер данных и индекса БД:

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

while( $row = mysql_fetch_array( $result ) ) {

$dbsize += $row[ "Data_length" ] + $row[ "Index_length" ];

}

?>
Сейчас размер БД в байтах содержится в переменной $dbsise. Нам осталось лишь воспользваться упомянутой в начале функцией formatfilesize() для форматирования этого размера (разделим его на кило-, мега-):

echo "

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

";

?>

Post to Twitter Tweet This Post

  • Аналог MySQL оператора LIMIT в MS SQL
  • MySQL случайный элемент
  • О себе
  • MySQL обратный слеш спецсимволы
  • Выгрузить загрузить SQL Dump
  • MySQL INSERT или UPDATE
  • Scaffolding CodeIgniter
  • Зачем хранить сессии ($_SESSION) в базе данных
  • Установка и настройка PHP framework CodeIgniter.
  • Оставить комментарий