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

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

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

Непрочитанное сообщение weec » 2011-02-11 17:21:17

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

Код: Выделить всё

 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))
однострочник считает размер данных и индексов

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

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

Непрочитанное сообщение ProFTP » 2011-02-11 17:56:51

а как его запустить?

Код: Выделить всё

# 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))

Код: Выделить всё

Illegal variable name.
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

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

Непрочитанное сообщение weec » 2011-02-11 18:14:18

у меня работает
запускаю в bash, + уcтановлен perl

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

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

Непрочитанное сообщение weec » 2011-02-11 18:16:27

попробуй так

Код: Выделить всё

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))


Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

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

Непрочитанное сообщение ProFTP » 2011-02-11 18:21:28

мне выдало 0

может попробовать убрать

Код: Выделить всё

,  sum(index_length)
это же индексы по идее...
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

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

Непрочитанное сообщение FiL » 2011-02-12 19:58:40

Код: Выделить всё

# 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 раза, однако.
Для крупных баз разница наверняка будет незначительна. А вот для большого количества мелких - можно серьезно пролететь с местом на диске.

Аватара пользователя
ADRE
майор
Сообщения: 2645
Зарегистрирован: 2007-07-26 8:53:49
Контактная информация:

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

Непрочитанное сообщение ADRE » 2011-02-12 20:11:25

написано что-то про это было в mysql мануале - даже на русском языке... google находит - точно
//del

Аватара пользователя
weec
лейтенант
Сообщения: 948
Зарегистрирован: 2007-07-24 11:17:35
Откуда: Afghanistan
Контактная информация:

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

Непрочитанное сообщение weec » 2011-02-17 18:01:40

Код: Выделить всё

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
обновленный вариант