Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Определить размер базы данных
 
 автор: golovdinov   (07.01.2007 в 21:17)   письмо автору
 
 

Подскажите пожалуйста как подсчитать размер БД?

Сделал такой код, но он не работает:


<?

$size 
"";

// читаем таблицы из БД
$get_tables mysql_query ("SHOW TABLES FROM '$dbname'");

while (
$table mysql_fetch_row ($get_tables))
{    
    
// Считаем размер таблицы
          
$get_size mysl_query ("SHOW TABLE STATUS LIKE '$table'");
          
$row mysql_fetch_assoc($get_size);
          
$size $size + ($row['Data_length'] + $row['Index_length']);
}

?>


Выдает ошибку в первом запросе =/

   
 
 автор: Бамси   (07.01.2007 в 22:26)   письмо автору
 
   для: golovdinov   (07.01.2007 в 21:17)
 

У вас ошибки, грамматические :)

<?
1. $get_tables 
mysql_query ("SHOW TABLES FROM '$dbname'");
надо:
$get_tables mysql_query ("SHOW TABLES FROM '".$dbname."'");

2. $get_size mysl_query ("SHOW TABLE STATUS LIKE '$table'");
надо
$get_size 
mysql_query ("SHOW TABLE STATUS LIKE '".$table."'");
?>

   
 
 автор: LuxeMate   (07.01.2007 в 22:42)   письмо автору
 
   для: Бамси   (07.01.2007 в 22:26)
 

Верите или нет,у меня всегда работало и так и так :D

   
 
 автор: Саня   (07.01.2007 в 23:39)   письмо автору
 
   для: golovdinov   (07.01.2007 в 21:17)
 

<?
mysql_connect
("localhost""root""");
$q mysql_query("SHOW TABLE STATUS FROM имя-бд");
$sum 0;
while ( 
$arr mysql_fetch_assoc($q) ) {
  
$sum += $arr['Data_length'] + $arr['Index_length'];
}
print (
$sum 1024)." КБ";

   
 
 автор: Бамси   (07.01.2007 в 23:57)   письмо автору
 
   для: golovdinov   (07.01.2007 в 21:17)
 


<?php 
  $dbname 
"anchor";

  
$dbcnx mysql_connect("127.0.0.1","root","password");
  
$dbuse mysql_query("USE ".$dbname);  
  
$get_tables mysql_query("SHOW TABLES");
  while (
$table mysql_fetch_object($get_tables)) 
  {        
  
$query2 "SHOW TABLE STATUS LIKE '".$table->Tables_in_anchor."'";
  
$get_size mysql_query($query2);     
     while (
$size mysql_fetch_assoc($get_size))
     {
     
$full $full + ($size[Data_length] + $size[Index_length]);
     }
  } 
  echo 
$full." байт";
?>

Хм.. я наверно дурак, у Сани кода в два раза меньше :) А я пыхтел пол часа :(

   
 
 автор: golovdinov   (08.01.2007 в 17:46)   письмо автору
 
   для: Бамси   (07.01.2007 в 23:57)
 

Все-таки придумал очень простой способ:


<?

// $dbname - имя базы данных (не таблицы)

$query mysql_query ("SHOW TABLE STATUS FROM ".$dbname);
while (
$row mysql_fetch_array ($query)) {
    
$size += $row['Data_length'] + $row['Index_length'];
}
$size $size 1024;
$size round ($size2)." Кб";

?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования