powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Размер базы данных.
5 сообщений из 5, страница 1 из 1
Размер базы данных.
    #33172450
pi10t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем требуется определить

1) максимальный размер базы данных ( total size of table schema)
2) процент использования "выделенного" места (usage_percent)
3) размер использованного простраства (usage_value).

Т.е. требуется примерно следующее:
- размер базы 10Гб
- на данный момент использовано 57% выделенного простраства или
- 5.7 Гб уже "забито" данными.

Естественно (для меня имхо) сразу попытался использовать
http://]http://dev.mysql.com/doc/mysql/en/show-table-status.html

"SHOW TABLE STATUS [FROM db_name] [LIKE 'pattern']

SHOW TABLE STATUS returns the following fields:
...

# Data_length
The length of the data file.

# Max_data_length
The maximum length of the data file. This is the total number of data bytes that can be stored in the table, given the data pointer size used.

# Data_free
The number of allocated but unused bytes.
"

переписал это дело для себя следующим образом, используя information_schema.tables - системную таблицу tables из information_schema.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
select sum(d.max_data_length) total_size,
(sum(d.max_data_length)-sum(f.data_free))* 100 /sum(d.max_data_length) usage_percent, 
(sum(d.max_data_length)-sum(f.data_free)) usage_value 
from 
(select sum(max_data_length) max_data_length from information_schema.tables
    where table_schema='table_schema') d,
(select sum(data_free) data_free from information_schema.tables
    where table_schema='table_schema') f;

В результате оказалось, что _теоретически_ мы можем использовать information_schema.tables/SHOW TABLE STATUS для получения данных. Но эти данные не корректны в текущей реализации MySQL, даже в последней бете 5.0.7
Это же подтвердил официальный представитель MySQL.

Остается вопрос как же все-таки определить размер базы то? -)
Например как выделяется размер базы MySQL у хостинг-провайдеров? Как у них посчитывается использованное пространство и т.п.?

На ум пока приходит тупо создать отдельную партицию под дата-файлы и считать свободное и занятое пространство там.

Также погуглил на эту тему. Но практически везде отсылают на SHOW TABLE STATUS.

среда реализации: MySQL 5.0.x, таблицы MyISAM, InnoDB
платформа: Solaris + Java 1.4

Кто что может посоветовать? -)
Буду очень признателен.
...
Рейтинг: 0 / 0
Размер базы данных.
    #33173807
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pi10t
Остается вопрос как же все-таки определить размер базы то? -)
Например как выделяется размер базы MySQL у хостинг-провайдеров? Как у них посчитывается использованное пространство и т.п.?

На ум пока приходит тупо создать отдельную партицию под дата-файлы и считать свободное и занятое пространство там.

Также погуглил на эту тему. Но практически везде отсылают на SHOW TABLE STATUS.

среда реализации: MySQL 5.0.x, таблицы MyISAM, InnoDB
платформа: Solaris + Java 1.4

Кто что может посоветовать? -)
Буду очень признателен.
Ну, во-первых, под файлы БД в любом случае неплохо создать отдельный раздел, причём в идеале на RAID-массиве, а насчёт занятого и свободного пространства, размер и директории считается несложно, плюс квоты в качестве ограничения, например...
...
Рейтинг: 0 / 0
Размер базы данных.
    #33174852
pi10t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DocAl
Ну, во-первых, под файлы БД в любом случае неплохо создать отдельный раздел, причём в идеале на RAID-массиве, а насчёт занятого и свободного пространства, размер и директории считается несложно, плюс квоты в качестве ограничения, например...

спасибо!
так и прийдется поступить -) мысли об этом были, но надеялся решить силами самой СУБД.

в принципе под MySQL server + data files + backup files выделена отдельная партиция. просто прийдется еще выделить отдельную партицию под data files.

p.s.
задал вопрос на форуме MySQL. в ответ молчание. -)

p.s.s.
а в Oracle так просто было -) пользуешь системные таблицы dba_data_files, dba_free_space и все. -)
...
Рейтинг: 0 / 0
Размер базы данных.
    #33174864
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pi10t
в принципе под MySQL server + data files + backup files выделена отдельная партиция. просто прийдется еще выделить отдельную партицию под data files.

А вот этого не понял. Почему это придётся?
...
Рейтинг: 0 / 0
Размер базы данных.
    #33174867
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из любопытства поглядел на размеры таблиц на моих серверах, сравнил те цифры, что даёт phpmyadmin и просто размеры файлов на диске. Что заметил:
Если таблица оптимизирована, цифра в phpmyadmin совпадает с суммой размеров .MYD и .MYI, т.е. файлов данных и индексов, без описания таблицы .frm.
Если таблица не оптимизирована и есть накладные расходы -- phpmyadmin врёт, систематически занижая размер, в среднем процентов на 10, однако, у меня нет сильно фрагментированных таблиц, мб разница может быть и большей...
Вы не могли бы объяснить, чем вызвано столь пристальное внимание к размеру таблиц?
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Размер базы данных.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]