Getting MySQL table size with PHP


Posted in: mysql | Save to del.icio.us | 4 Feb 2009



Below is a small script that lets you read the table sizes of a MySQL database.

<?php
 
$link = mysql_connect('host', 'username', 'password');
 
$db_name = "your database name here";
$tables = array();
 
mysql_select_db($db_name, $link);
$result = mysql_query("SHOW TABLE STATUS");
 
while($row = mysql_fetch_array($result)) {
    /* We return the size in Kilobytes */
    $total_size = ($row[ "Data_length" ] + 
                   $row[ "Index_length" ]) / 1024;
    $tables[$row['Name']] = sprintf("%.2f", $total_size);
}
 
print_r($tables);
 
?>


It will return data like the following for a ‘wordpress’ database:

Array
(
    [wp_comments] => 80.00
    [wp_links] => 48.00
    [wp_options] => 224.00
    [wp_pollsa] => 16.00
    [wp_pollsip] => 16.00
    [wp_pollsq] => 16.00
    [wp_postmeta] => 48.00
    [wp_posts] => 112.00
    [wp_term_relationships] => 32.00
    [wp_term_taxonomy] => 32.00
    [wp_terms] => 48.00
    [wp_usermeta] => 48.00
    [wp_users] => 48.00
)





2 Responses

1

Pablo

February 5th, 2009 at 5:29 am

Great script, simple and useful!

2

Jo

April 6th, 2010 at 8:28 pm

so far this the best i found on internet. useful even i’m not fully understand how it work. but this is want i want. thanks

Comments are disabled for this post, but if you have spotted an error, feel free to contact me.

Get latest updates by E-mail

About this blog

This site is a digital habitat of Sameer, a freelance web developer working from Pune.More

  • Users Online

    • 12 Users Online
    • 10 Guests, 2 Bots
  • RECENT COMMENTS

    ON TWITTER