Ik wil puur als leuk statistiekje de grootte van m'n database opvragen, ik heb alleen geen idee hoe dit moet. In PHPMyAdmin wordt t ook gedaan, alleen de source is zo vreselijk onduidelijk dat ik t r echt niet uit krijg
http://www.mysql.com/doc/en/SHOW_STATUS.html
misschien is dat wat?
www.mysql.com/doc rulez
of anders kan je misschien proberen hem alle tabellen tedoorzoeken naar grootte en die bij elkaar laten optellen.
misschien is dat wat?
www.mysql.com/doc rulez
of anders kan je misschien proberen hem alle tabellen tedoorzoeken naar grootte en die bij elkaar laten optellen.
Tis vrijsimpele functie, je moet alleen even weten dat deze bestaat..
Ik heb hem laatst ook voor me eigen lol even uitgezocht, hij werkt atm alleen als je op één database connect. Maar dat moet aan te passen zijn
Ik heb hem laatst ook voor me eigen lol even uitgezocht, hij werkt atm alleen als je op één database connect. Maar dat moet aan te passen zijn
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| $host = 'localhost'; //Het adres van je MySQL server $db = '******'; //De naam van je Database $login = '******'; //De login van je MysQL server $pass = '******'; //Het password van je MySQL server @mysql_connect ($host,$login,$pass) or die ("Can't connect to the database"); @mysql_select_db ($db) or die ("The selected database cannot been found, or pasword might be wrong!"); Function CalcDBSize() { $sql = "SHOW TABLE STATUS"; $items = mysql_query($sql); IF ($item = mysql_fetch_array($items)) { DO { $DBSize += $item[Data_length]; } While ($item = mysql_fetch_array($items)); } return $DBSize; } echo CalcDBSize()." Bytes"; |
had ik net www.mysql.com/doc helemaal doorgelezen en niks gevonden
staat t antwoorrd r al meer dan 15 min
thnx prutser
hehe ja nice. Trouwens zoals ik al zei gewoon je tables uitlezen wat wel op mijn pagina stond en die optellen bij elkaar:)
ff verbeterd 
je krijgt nu exact dezelfde waarde als in PHPMyAdmin
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| Function DBSize() { $sql = "SHOW TABLE STATUS"; $items = mysql_query($sql); if ($item = mysql_fetch_array($items)) { DO { $DBsize += $item[Data_length]; $DBsize += $item[Index_length]; //Indexes meetellen } While ($item = mysql_fetch_array($items)); } $DBsize = ($DBsize / 1024); //Kb's van maken $DBsize = (round($DBsize, 1)); //afronden echo ($DBsize); } |
je krijgt nu exact dezelfde waarde als in PHPMyAdmin
emm Unagi harstikke leuk, maare je echo staat IN de function?
niet echt netjes....
wrom nie? je gebruikt deze function toch max. 1x per pagina, en dan is t best handig. Ik heb nu gewoon in m'n layout, waarin alle content geinclude wordt DBsize(); staan, werkt primaMiezeL schreef op 08 augustus 2002 @ 14:44:
emm Unagi harstikke leuk, maare je echo staat IN de function?niet echt netjes....
edit:
bij mij plakt de functie r ook nog "DB: " voor en " Kb" er achter
bij mij plakt de functie r ook nog "DB: " voor en " Kb" er achter
Verwijderd
[overdrijf-modus]Unagi schreef op 08 augustus 2002 @ 14:17:
ff verbeterd
PHP:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Function DBSize() { $sql = "SHOW TABLE STATUS"; $items = mysql_query($sql); if ($item = mysql_fetch_array($items)) { DO { $DBsize += $item[Data_length]; $DBsize += $item[Index_length]; //Indexes meetellen } While ($item = mysql_fetch_array($items)); } $DBsize = ($DBsize / 1024); //Kb's van maken $DBsize = (round($DBsize, 1)); //afronden echo ($DBsize); }
je krijgt nu exact dezelfde waarde als in PHPMyAdmin
Waarom die if-test nog? Want als je een gewone while-loop doet, en jou if-test wordt in dat geval niet gematched (dus bij de gewone while begint de while niet), dan zit je toch evenver?
Overbodige if-test lijkt mij :-)
[/]
En wat is er nu mis met een echo in een functie
Zo overdreven is dat niet hoor.Verwijderd schreef op 09 augustus 2002 @ 09:56:
Waarom die if-test nog? Want als je een gewone while-loop doet, en jou if-test wordt in dat geval niet gematched (dus bij de gewone while begint de while niet), dan zit je toch evenver?
Overbodige if-test lijkt mij :-)
En wat is er nu mis met een echo in een functie
En wat nou als ik bijvoorbeeld deze info naar file wil schrijven? Dan moet ik die functie weer gaan aanpassen.
En wat is er nu mis met een echo in een functie :?[/quote]Verwijderd schreef op 09 augustus 2002 @ 09:56:
[...]
[overdrijf-modus]
Waarom die if-test nog? Want als je een gewone while-loop doet, en jou if-test wordt in dat geval niet gematched (dus bij de gewone while begint de while niet), dan zit je toch evenver?
Overbodige if-test lijkt mij :-)
Test.
yay! miereneuken!!
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| function dbSize ( $dbname, $mysql_link, $precision = 3 ) { mysql_select_db ( $dbname, $mysql_link ); $dbsize = 0; $query = 'SHOW TABLE STATUS'; $result = mysql_query ( $query ); while ( $row = mysql_fetch_assoc ( $result ) ) $dbsize += $row [ 'Index_length' ] + $row [ 'Data_length' ]; return sprintf ( "%.{$precision}f MB", ($dbsize / ( 1 << 20 ) ) ); } $mysql_link = mysql_connect ( 'localhost', '***', '***' ); echo dbSize ( 'myDb', $mysql_link ); |
sorry, * drm is in een flauwe bui
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Doe het dan goed.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
| function dbSize ( $dbname, $mysql_link, $precision = 3 ) { mysql_select_db ( $dbname, $mysql_link ); $dbsize = 0; $result = mysql_query ( 'SHOW TABLE STATUS' ); while ( $row = mysql_fetch_assoc ( $result ) ) $dbsize += $row [ 'Index_length' ] + $row [ 'Data_length' ]; return sprintf ( "%.{$precision}f MB", $dbsize / ( 1 << 20 ) ); } $mysql_link = mysql_connect ( 'localhost', '***', '***' ); echo dbSize ( 'myDb', $mysql_link ); |
omfg!!! da's nog wel de ergste miereneuk die ik ooit gezien heb
jij wint
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
nog een mierenneuk actie:
moet zijn
PHP:
1
2
| while ( $row = mysql_fetch_assoc ( $result ) ) $dbsize += $row [ 'Index_length' ] + $row [ 'Data_length' ]; |
moet zijn
PHP:
1
2
| while ( $row == mysql_fetch_assoc ( $result ) ) $dbsize += $row [ 'Index_length' ] + $row [ 'Data_length' ]; |
Als je mierenneukt, doe het dan goedstekkel schreef op 09 augustus 2002 @ 11:01:
nog een mierenneuk actie:
PHP:
1 2 while ( $row = mysql_fetch_assoc ( $result ) ) $dbsize += $row [ 'Index_length' ] + $row [ 'Data_length' ];
moet zijn
PHP:
1 2 while ( $row == mysql_fetch_assoc ( $result ) ) $dbsize += $row [ 'Index_length' ] + $row [ 'Data_length' ];
![]()
er moet staan zolang $row een waarde toegekend krijgt, en niet $row = gelijk aan ... you see
Oops, sorry, zal vervolgens eerst ff de php handleiding er op naslaanPrutser_IA schreef op 09 augustus 2002 @ 11:46:
[...]
Als je mierenneukt, doe het dan goed
er moet staan zolang $row een waarde toegekend krijgt, en niet $row = gelijk aan ... you see
Ik heb dit scriptje gebruikt om een eigen script te schrijven waarmee ik de grootte van een directory kan uitlezen:
Regel 14 van dit script is gebaseerd op regel 9 van drm's script hierboven:
Door zijn "20" te veranderen in "10" geeft mijn directory-scriptje deelfde grootte aan als Windows, maar ik heb geen idee wat ik nu eigenlijk doe. Wie kan mij vertellen (of een link geven) wat "1 << 20" betekent?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| /** * return the size of a directory in MB */ function dir_size($dir) { $directory = opendir($dir); while ($file = readdir($directory)) { if (is_file($dir.$file)) { $size = filesize($dir.$file); } } return sprintf( "%.3f MB", $size / (1 << 10)); } |
Regel 14 van dit script is gebaseerd op regel 9 van drm's script hierboven:
PHP:
1
| return sprintf ( "%.{$precision}f MB", ($dbsize / ( 1 << 20 ) ) ); |
Door zijn "20" te veranderen in "10" geeft mijn directory-scriptje deelfde grootte aan als Windows, maar ik heb geen idee wat ik nu eigenlijk doe. Wie kan mij vertellen (of een link geven) wat "1 << 20" betekent?
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."
Wat heeft dat te maken met dit drie jaar oude topic?
<< is trouwens 'shift links'.
<< is trouwens 'shift links'.
<< is een bitwise shift naar links. Dat betekent dat wanneer je 1 << 1 doet, je de binaire voorstelling van het getal '1' een plaatsje naar links schuift en aan de rechterzijde aanvult (pad) met nullen.
Nu ben jij natuurlijk heel slim en zie je direct dat dat feitelijk hetzelfde is als machtsverheffen met grondtal 2
Kortom 1 << 10 is gelijk aan 210 wat weer overeenkomt met 1024, wat op zijn beurt weer overeenkomt met 100 0000 0000 binair en dan is het cirkeltje weer rond.
code:
1
2
3
4
| 1 binair = 1 decimaal 1 << 1 binair = 10 binair = 2 decimaal 1 << 2 binair = 100 binair = 4 decimaal 1 << 3 binair = 1000 binair = 8 decimaal |
Nu ben jij natuurlijk heel slim en zie je direct dat dat feitelijk hetzelfde is als machtsverheffen met grondtal 2
Kortom 1 << 10 is gelijk aan 210 wat weer overeenkomt met 1024, wat op zijn beurt weer overeenkomt met 100 0000 0000 binair en dan is het cirkeltje weer rond.
[ Voor 6% gewijzigd door drm op 03-01-2005 20:58 ]
Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz
Zie de uitleg van DRM. Beetje jammer dat je daarvoor zo'n topic moet kicken om een slechte topic start te verbergen 
Gewoon een nieuw topic openen in dit geval
Gewoon een nieuw topic openen in dit geval
[ Voor 18% gewijzigd door Creepy op 03-01-2005 21:12 ]
"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney
Pagina: 1
Dit topic is gesloten.
![]()