rad blog programowanie, majsterkowanie, życie

rozmiar bazy danych

r

MySQL

MySQL Reference Manual: SHOW TABLE STATUS Syntax

<?php
// MySQL database size
// by rad
 
// Settings:
$db = "mydb";          // database name
$user = "rad";         // username
$pass = "mypassword";  // password
$server = "localhost";
 
$db_con = mysql_connect($server, $user, $pass);
$db_size = 0;
$db_query = mysql_query("SHOW TABLE STATUS FROM $db");
while ($row = mysql_fetch_array($db_query)) {
  $db_size += $row['Data_length'] + $row['Index_length'];
}
// $db_size contain database size in bytes
echo "$db: $db_size B (~".round(($db_size/1024), 1)." KiB; ~".round($db_size/1048576, 2)." MiB)";
?>

PostgreSQL

PostgreSQL Documentation: Determining Disk Usage
PostgreSQL Documentation: Database Object Size Functions

SELECT pg_database_size('nazwa_bazy');

Powyższe zapytanie SQL wykorzystane w prostym skrypcie PHP. Tym razem, dla odmiany, obiektowo z wykorzystaniem PHP Data Objects (PDO):

<?php
// PostgreSQL database size
// by rad
 
// Settings:
$db = "mydb";          // database name
$user = "rad";         // username
$pass = "mypassword";  // password
$server = "localhost";
 
$dbh = new PDO("pgsql:dbname=$db;host=$server;user=$user;password=$pass");
$db_query = $dbh->query("SELECT pg_database_size('$db')");
$db_size = $db_query->fetch(PDO::FETCH_OBJ)->pg_database_size;
 
// $db_size contain database size in bytes
echo "$db: $db_size B";
?>

Stosując niewielkie modyfikacje w powyższych skryptach, można uzyskać tylko wielkość poszczególnych tabel lub np. indeksów.

Add comment

rad blog programowanie, majsterkowanie, życie

Kategorie