Размер базы данных

NeoLynx

Новичок
Размер базы данных

В очередной раз подниму вопрос, к сожалению так и не нашел на него однозначного ответа в форуме:

Как узнать сколько дискового пространства сжирает БД?

В данны момент реализованно следующим образом:
$sizedb = mysql_query("SHOW TABLE STATUS FROM $db_info[name]", CONN1);
$sizedb_info = mysql_fetch_array($sizedb);
$sizedb_info=$sizedb_info[Index_length]+$sizedb_info[Data_length]+$sizedb_info[Index_free];

на выходе получаю явное несоответствие, хоть размеры у всех баз и разные, но они очень маленькие буквально несколько Кб.

Подскажите куда копать и возможно ли это в принципе?

P.S. Доступа к файлу БД нет.
 

NeoLynx

Новичок
хмм... а как узнать размер остальных таблиц?
явно же нигде не указано какую таблицу смотреть.
 

NeoLynx

Новичок
Вообще не сложно, знать бы что с чем складывать...

while ($sizedb_info = mysql_fetch_array($sizedb)){
$size+=$sizedb_info[Index_length]+$sizedb_info[Data_length]+$sizedb_info[Index_free];
}

так?
 

white phoenix

Новичок
> Вообще не сложно, знать бы что с чем складывать...
А разве не знаем? У нас есть размер каждой таблицы и нужно получить суммарный размер.
> так?
Да. Только $size = 0; надо сделать сначала.
 

NeoLynx

Новичок
ну это само собой, спасибо, сейчас попробую.
....

огромное спасибо, работает.
 

NeoLynx

Новичок
почему?

Может тема не полностью прочитана?
вроде я получил ответ на свой вопрос.
 

Wicked

Новичок
потому что это не ключевые слова, не числа, и они не заключены в кавычки :)
 

Wicked

Новичок
это НЕ значит, что код написан хорошо, или хотя бы даже нормально.

в качестве примера предлагаю тебе написать в начале этого скрипта такой код:
define("Index_length", -1);
define("Data_length", -1);
define("Index_free", -1);
 

white phoenix

Новичок
NeoLynx
Надо в ковычки (') заключить Index_length и т.п. строки.
> и тем не менее все работает, в данном случае.
Работает потому что в PHP кастинг несуществующих констант как текст. Сделай например
PHP:
define('Index_length','test');
-~{}~ 07.02.06 12:38:

опоздал...
 

NeoLynx

Новичок
С удовольстием почитаю, но это же скорее к внешней правильности кода относится.
в данном случае тип данных изместен и на скорость не влияет...
 

white phoenix

Новичок
> С удовольстием почитаю, но это же скорее к внешней правильности кода относится.
Нет.
> в данном случае тип данных изместен и на скорость не влияет...
Из чего сиё следует?
 

NeoLynx

Новичок
1. из моих скудных умозаключений
2. из объема поставленной задачи: вывод объема одной базы менее метра.

P.S. Думаю стоит закрыть сие рассуждение, думаю чтиво ответит на мои вопросы, или на пальцах объяснить в чем я ошибаюсь.
 
Сверху