Страница 1 из 1
[mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-11 17:21:17
weec
вывести размер хранилища в гигабайтах
Код: Выделить всё
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))
однострочник считает размер данных и индексов
Re: [mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-11 17:56:51
ProFTP
а как его запустить?
Код: Выделить всё
# 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))
Re: [mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-11 18:14:18
weec
у меня работает
запускаю в bash, + уcтановлен perl
Re: [mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-11 18:16:27
weec
попробуй так
Код: Выделить всё
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))
Re: [mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-11 18:21:28
ProFTP
мне выдало 0
может попробовать убрать
это же индексы по идее...
Re: [mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-12 19:58:40
FiL
Код: Выделить всё
# du -hs ~mysql/cacti/
1.1M /var/lib/mysql/cacti/
# mysql -NBe "select sum(data_length), sum(index_length) from information_schema.tables where table_schema='cacti'"
122934 199680
Итого, имеем разницу между 320 кил и 1.1 мега. В 3 раза, однако.
Для крупных баз разница наверняка будет незначительна. А вот для большого количества мелких - можно серьезно пролететь с местом на диске.
Re: [mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-12 20:11:25
ADRE
написано что-то про это было в mysql мануале - даже на русском языке... google находит - точно
Re: [mysql] Как посчитать размер (баз / всего хранилища) ?
Добавлено: 2011-02-17 18:01:40
weec
Код: Выделить всё
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
обновленный вариант