Forum Webscript.Ru

Общие => Базы данных => Тема начата: Croaker от 12 Августа 2002, 22:28:59

Название: размер базы MySQL
Отправлено: Croaker от 12 Августа 2002, 22:28:59
Можно ли как-нидь узнать размер (кб\\мб) mysql`ной базы "малой кровью" (не залезая в mysql/data/%%db_name%%)? (язык - Perl)???
Название: размер базы MySQL
Отправлено: tserbis от 13 Августа 2002, 09:29:41
Вряд ли это лучший вариант, но можно так:

use имя_БД;
show table status;

и просуммировать значения нужных полей.
Название: размер базы MySQL
Отправлено: Alexandr от 13 Августа 2002, 09:31:08
SHOW TABLE STATUS FROM db_name
Название: размер базы MySQL
Отправлено: tserbis от 13 Августа 2002, 09:39:15
:-)) Я же говорил, что, наверное, есть варианты получше.
Название: размер базы MySQL
Отправлено: Fluke от 23 Августа 2002, 20:47:56
На Perl это может выглядеть например вот так:

#!/usr/bin/perl -w

use DBI;
use strict;
my($dbh, $sth, $sum, $hash_ref);


$sum = 0;

$dbh = DBI->connect("DBI:mysql:your_db", \'your_login\', \'your_pass\') or die $DBI::errstr;

$sth = $dbh->prepare("SHOW TABLE STATUS") or die "$dbh->errstr()\\n";
$sth->execute();

while($hash_ref = $sth->fetchrow_hashref())
{$sum += $hash_ref->{Data_length};}

print "Total data length is $sum bytes\\n";

$sth->finish();

$dbh->disconnect();

exit(0);

C уважением.