Avatar billede spidr Nybegynder
14. august 2003 - 21:15 Der er 11 kommentarer og
1 løsning

Størelsen på databasen.

Nogen der har en ide til hvordan man på sit site (med php) kan vise hvor stor en database er?? Både alle databaser til sammen og størrelsen på enkelte??

Evt. hvor meget plads man har brugt på sin server???
Avatar billede snoozer Nybegynder
14. august 2003 - 21:16 #1
hvis du bruger phpmyadmin til din database kan du det der..
Avatar billede spidr Nybegynder
14. august 2003 - 21:19 #2
ja men vil jo ave det på mit site??
Du har vidst ikke læst andet end overskiften??
Avatar billede Slettet bruger
14. august 2003 - 21:20 #3
Med SQL er den eneste mulighed nok at bruge
http://www.mysql.com/doc/en/SHOW_TABLE_STATUS.html

Så får du størrelse af hver enkel tabel (ved at udregne index størrelse + data størrelse). Du lægger så de retunerede rækker (tabeller) sammen, og får så størrelsen af valgte database.
Avatar billede detox Nybegynder
14. august 2003 - 21:20 #4
<?
include ('connect.inc.php');
$db = 'Database_Navn';
$str = "<h1>Database $db:</h1>";
$query ="SHOW TABLE STATUS FROM $db" ;
$result = mysql_query($query)
            or die(mysql_error());

if (@mysql_num_rows($result)) {
                $samlet = 0;
                while ($row = mysql_fetch_array($result)) {
                    $tabelnavn = $row['Name'];
                    $data = $row['Data_length'];
                    $index = $row['Index_length'];
                    $ialt = number_format(($data+$index)/1024,2,',','.');
                    $samlet += $ialt;
                    $str .= "$tabelnavn indeholder: $ialt kb </br>";
                }
            $str .= "<b>Databasens samlede størrelse: $samlet kb</b>";
            } // end if
mysql_close($s);
// spyt ud
print $str;
?>
Avatar billede detox Nybegynder
14. august 2003 - 21:22 #5
Hmm, det er selvfølgelig den samlede størrelse, men det skulle vel være nemt at rette til.
Avatar billede detox Nybegynder
14. august 2003 - 21:24 #6
Sludder, det er jo det du beder om ;-)
Avatar billede snoozer Nybegynder
14. august 2003 - 21:27 #7
oh sorry spidr... er vidst lidt træt :)
Avatar billede spidr Nybegynder
14. august 2003 - 21:51 #8
Tak for koden, det er jo alt for meget :D:D Det vil jeg kigge på i morgen :)
Og snoozer går nok :D:D
Avatar billede spidr Nybegynder
15. august 2003 - 13:52 #9
Ok detox, din er sådan set meget god..
http://www.goog.dk/inf.php
den siger bare:
Database i alt: 3176.979 kb
Hvor at i min mysql siger den
81 tabel(ler)  Sum  131,275  --    6.0 MB
Der er ret langt fra 3100 kb til 6 mb??
Avatar billede detox Nybegynder
15. august 2003 - 20:26 #10
Ja, det må jeg give dig ret i... Her er en revideret version:

<?
include ('connect.inc.php');
$db = 'Database_Navn';
$str = "<h1>Database $db:</h1>";
$query ="SHOW TABLE STATUS FROM $db" ;
$result = mysql_query($query)
            or die(mysql_error());

if (@mysql_num_rows($result)) {
                $samlet = 0;
                while ($row = mysql_fetch_array($result)) {
                    $tabelnavn = $row['Name'];
                    $data = $row['Data_length'];
                    $index = $row['Index_length'];
                    $ialt = number_format(($data+$index)/1024,3,',','.');
                    $samlet += ($data+$index)/1024;
                    $str .= "$tabelnavn indeholder: $ialt kb </br>";
                }
            $samlet = number_format($samlet,3,",",".");
            $str .= "<b>Databasens samlede størrelse: $samlet kb</b>";
            } // end if
mysql_close($s);
// spyt ud
print $str;
?>
Avatar billede spidr Nybegynder
15. august 2003 - 20:36 #11
Jamen hvad med mb??
Avatar billede detox Nybegynder
15. august 2003 - 20:46 #12
En lille tilføjelse:

<?
include ('connect.inc.php');
$db = 'Database_Navn';
$str = "<h1>Database $db:</h1>";
$query ="SHOW TABLE STATUS FROM $db" ;
$result = mysql_query($query)
            or die(mysql_error());

if (@mysql_num_rows($result)) {
                $samlet = 0;
                while ($row = mysql_fetch_array($result)) {
                    $tabelnavn = $row['Name'];
                    $data = $row['Data_length'];
                    $index = $row['Index_length'];
                    $ialt = number_format(($data+$index)/1024,3,',','.');
                    $samlet += ($data+$index)/1024;
                    $str .= "$tabelnavn indeholder: $ialt kb </br>";
                }
            if ($samlet>1024) $samlet = number_format($samlet/1024,3,",",".") . " MB";
            else $samlet = number_format($samlet,3,",",".") . " kb";
            $str .= "<b>Databasens samlede størrelse: $samlet</b>";
            } // end if
mysql_close($s);
// spyt ud
print $str;
?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester