php计算整个mysql数据库大小的方法

yipeiwu_com6年前Mysql基础

本文实例讲述了php计算整个mysql数据库大小的方法。分享给大家供大家参考。具体如下:

这里用MB,KB或者GB的格式返回计算结果。

function CalcFullDatabaseSize($database, $db) {
  $tables = mysql_list_tables($database, $db);
  if (!$tables) { return -1; }
  $table_count = mysql_num_rows($tables);
  $size = 0;
  for ($i=0; $i < $table_count; $i++) {
    $tname = mysql_tablename($tables, $i);
    $r = mysql_query("SHOW TABLE STATUS FROM ".$database." LIKE '".$tname."'");
    $data = mysql_fetch_array($r);
    $size += ($data['Index_length'] + $data['Data_length']);
  };
  $units = array(' B', ' KB', ' MB', ' GB', ' TB');
  for ($i = 0; $size > 1024; $i++) { $size /= 1024; }
  return round($size, 2).$units[$i];
}
/*
** Example:
*/
// open mysql connection:
$handle = mysql_connect('localhost', 'user', 'password'); 
if (!$handle) { die('Connection failed!'); }
// get the size of all tables in this database:
print CalcFullDatabaseSize('customer1234', $handle);
// --> returns something like: 484.2 KB
// close connection:
mysql_close($handle);

希望本文所述对大家的php程序设计有所帮助。

相关文章

解析php session_set_save_handler 函数的用法(mysql)

复制代码 代码如下:<?php /*============================文件说明========================================...

MYSQL 小技巧 -- LAST_INSERT_ID

其实,这两个是有区别的,LAST_INSERT_ID() 能返回 bigint 值的id。而,mysql_insert_id 返回的是 int 。如果你 的id 是 unsigned i...

对比PHP对MySQL的缓冲查询和无缓冲查询

关于缓冲查询和无缓冲查询 MySQL的客户端有两种类型的查询: 缓冲查询:将接收查询的结果并把他们存储在客户端的缓存中,而且接下来获取行记录的请求仅仅从本地内获取。 (1)优点:可以在结...

PHP HTML JavaScript MySQL代码如何互相传值的方法分享

1.PHP   a.PHP -> HTML & JavaScript   额 超简单,我也要写= =~   html代码中 <input type="" readonly="...

PHP实现清除MySQL死连接的方法

本文实例讲述了PHP实现清除MySQL死连接的方法。分享给大家供大家参考,具体如下: 连接的情况,主要表现为有过多的Sleep连接,并且Time时间很长,占满了所有的可用连接数,以至于其...