SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.02.2011 17:20:59

weec
Участник
Зарегистрирован: 26.11.2009
Сообщений: 10

Как посчитать размер (баз / всего хранилища) ?

вывести размер хранилища в гигабайтах

Код:

 k=0; for f in $((mysql -NBe "SHOW DATABASES"  | while read i; do mysql -NBe "select sum(data_length),  sum(index_length) from information_schema.tables  where table_schema='$i'"; done ) | perl -anle 'print ($F[0]+$F[1])') ; do k=$(($k+$f)); done ; echo $(($k/1024/1024/1024))

однострочник считает размер данных и индексов

Неактивен

 

#2 11.02.2011 22:24:36

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Как посчитать размер (баз / всего хранилища) ?

Круто, но как правило «du -sh /var/lib/mysql» пишется проще и работает быстрее.
Попробуйте, Вам понравится wink

Неактивен

 

#3 18.02.2011 10:25:49

weec
Участник
Зарегистрирован: 26.11.2009
Сообщений: 10

Re: Как посчитать размер (баз / всего хранилища) ?

Код:

k=0; for f in `(mysql -NBe "SHOW DATABASES" | while read i; do mysql -NBe "SHOW TABLE STATUS" $i; done ) | awk {'print $7, $9'} | grep -v NULL | awk {'print $1+$2'}`; do k=$(($k+$f)); done ; value=$k; ((kilo=value/1024)); ((mega=kilo/1024)); ((giga=mega/1024)); echo $value bytes = $kilo Kb, $mega Mb, and $giga Gb

обновленный вариант

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson