Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр 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 ($size, 2)." Кб";

?>

   
Rambler's Top100
вверх

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