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.
0 Responses to “rozmiar bazy danych”