Размер базы данных.PHP - MySQL - PullRequest
       0

Размер базы данных.PHP - MySQL

6 голосов
/ 27 октября 2010

Я хочу узнать размер моей базы данных, используя php.Как отобразить размер в мегабайтах всей базы данных?Размер в мегабайтах конкретного запроса?

Ответы [ 5 ]

9 голосов
/ 27 октября 2010

Попробуйте, чтобы получить размер в байтах:

mysql_select_db("yourdatabase");  
$q = mysql_query("SHOW TABLE STATUS");  
$size = 0;  
while($row = mysql_fetch_array($q)) {  
    $size += $row["Data_length"] + $row["Index_length"];  
}

, затем преобразовать в мегабайты:

$decimals = 2;  
$mbytes = number_format($size/(1024*1024),$decimals);
6 голосов
/ 27 октября 2010
SELECT table_schema "Data Base Name",
sum( data_length + index_length ) / 1024 /
1024 "Data Base Size in MB",
sum( data_free )/ 1024 / 1024 "Free Space in MB"
FROM information_schema.TABLES
GROUP BY table_schema ;
2 голосов
/ 07 июня 2013

Я пытаюсь изменить это из интернет-источника для этого случая, попробуйте, пожалуйста.

<?php
mysql_connect("localhost","root","password here"); 
 $namadb=''; //put db name here

 $sql="SELECT table_schema 'db_name', SUM( data_length + index_length) / 1024 / 1024 'db_size_in_mb' FROM information_schema.TABLES WHERE table_schema='$namadb' GROUP BY table_schema ;";
 $query=mysql_query($sql);
 $data=mysql_fetch_array($query); 
 print $data['db_size_in_mb'];
0 голосов
/ 06 августа 2018

Этот SQL дает вам полезные данные о вашей БД:

SELECT 
TABLE_SCHEMA AS DB_Name, 
count(TABLE_SCHEMA) AS Total_Tables, 
SUM(TABLE_ROWS) AS Total_Tables_Row, 
ROUND(sum(data_length + index_length)/1024/1024) AS "DB Size (MB)",
ROUND(sum( data_free )/ 1024 / 1024) AS "Free Space (MB)"
FROM information_schema.TABLES 
WHERE TABLE_SCHEMA = 'DATABASE NAME'
GROUP BY TABLE_SCHEMA ;
0 голосов
/ 27 октября 2010

Попробуйте запросить information_schema.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...