Как узнать размер базы данных MySQL через PHP
Как узнать размер базы данных MySQL через PHP
В этой небольшой статье вы узнаете, как получить размер вашей базы данных (БД) MySQL используя язык программирования PHP. Для начала нам потребуется простая функция formatfilesize(), которая будет преобразовывать размер в байтах в более "читаемый вид".
<?php
function formatfilesize( $data )
{
// bytes
if( $data < 1024 )
{
return $data . " bytes";
}
// kilobytes
else if( $data < 1024000 )
{
return round( ( $data / 1024 ), 1 ) . "kb";
}
// megabytes
else
{
return round( ( $data / 1024000 ), 1 ) . " MB";
}
}
?>
Далее нам естественно необходимо подключиться к самой базе данных MySQL, чтобы узнать ее размер.
Определим переменную, которая будет содержать имя нашей базы данных. Замените "databasename" на имя своей базы данных:
<?php
$dbname = "databasename";
?>
Ну а теперь нам осталось главное - вычислить размер нашей БД. Это делается очень просто - необходимо просто пройтись по каждой таблице БД
сложить размер данных и индекса БД:
<?php
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() для форматирования этого размера (разделим его на кило-, мега-):
<?php
echo "Размер базы данных составляет " . formatfilesize( $dbsize );
?>
Вот, собственно, и все. Удачи! Информация о статье "Как узнать размер базы данных MySQL через PHP"
Николай Рудченко |
http://www.codeguru.com.ua/ |
13 Февраля 2008 |
Просмотрели 1424 раз
КОММЕНТАРИИ (2)
18 Августа 2009 01:22:03 |
#
Полный код, который у меня без ошибок заработал... :)
$Host = "localhost";
$User = "User";
$Password = "Password";
$DBName = "DBName";
function formatfilesize($data) {
if($data < 1024) {return $data." bytes";} // bytes
else if($data < 1024000) {return round(($data/1024),1)."kb";} // kilobytes
else {return round(($data/1024000),2)." MB";} // megabytes
}
$Link=mysql_connect($Host,$User,$Password);
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"];}
mysql_close($Link);
echo ' BD: '.formatfilesize($dbsize);
Зарегистрируйтесь или выполните Вход для того чтобы оставлять комментарии
Не менее интересно
- Измерение скорости работы скрипта
- PHP и array_map. Использование обратных вызовов массивов
- sscanf - сканирование форматированных строк в PHP
- Получение реального IP-адреса пользователя в РНР
- Создание Rollover Image с использованием CSS
- Сжатие XHTML страниц с использованием PHP Output Buffers
- PHP-класс для работы с AlexaRank
- PHP и его история
- Как верстать сайт? Шаблонная вёрстка сайта
- Коды ответов HTTP-сервера



Вот, собственно, и все.
Как это всё ??? Странно, есть имя базы, а где же пароль, а где подключение к БД ??? Что-то не то как-то... духом чую - не то, не дописано... :)
Мне кажется, без этого никак: