webForumDet fria alternativet
Logga in / Bli medlem

Databas storlek?

Databaser & SQL

9 svar · 450 visningar · startad av rincewind

Medlem sedan nov. 2003104 inlägg
Trådstart#1

Hej,

finns det något snabbt sätt att fråga eller räkna ut hur mycket plats en hel databas tar i mySQL?
Även en tabell vore trevligt att veta hur mycket plats den tar upp.

Mvh
-- Rincewind

Medlem sedan mars 2003970 inlägg
#2

Jag är ledsen att jag inte kan vara till mer hjälp, men folk behöver nog få reda på ung. hur många användare det blir också.
Min tomma tabell däremot som var på ca 85 fält var inte större än 1 kB. Lycka till!

Medlem sedan jan. 20006 inlägg
#3

Kolla i din katalog där databasen lägger sig
t.ex /usr/local/mysql/var/databasens_namn

/H

Medlem sedan mars 20025 907 inlägg
#4

Det bör du kunna se i ditt administrationsgränssnitt (ex. phpmyadmin)

Medlem sedan nov. 2003104 inlägg
#5

hehe,=)
jo, klart jag kan se storleken i något admin gränssnitt.
Men vad jag har är en webtjänst (som drivs med php) där varje användare har en viss mängd data sparat i databasen (mysql).
Jag skulle vilja presentera för varje person hur mycket plats han tar upp i den webtjänsten.
Varje användare har till och med en egen databas.

Så frågan är - går det att fråga mysql med något trevligt kommando om hur mycket plats en hel databas eller table tar upp?

Mvh
-- Rincewind

Medlem sedan aug. 2002351 inlägg
#6

gissar att du kör på linux, så du borde väl kunna göra ett program som kontrollerar storleken på filerna i aktuell mapp och sparar dem i en textfil i samma mapp?

Medlem sedan dec. 1999757 inlägg
#7

Exempel på en tabell

$sql = mysql_query("SHOW TABLE STATUS FROM min_db LIKE 'tabell_namn'");
$result = mysql_fetch_array($sql);
echo "$result[Data_length]";

Ett tips är att använda jpgraph för att göra ett snyggt cirkeldiagram av använt och ledigt utrymme åt dina användare.

Medlem sedan nov. 2003104 inlägg
#8

Oj,

fungerar suveränt..
Tackar kjell för det suveräna svaret!

Men om man vill få fram storleken på hela databasen då?
I mitt fall har jag en fullt normaliserad databas vilket innebär att det är över 30 tabeller.
Lite jobbigt att fråga varje tabell hur stor den är.=)
Någon som vet hur man får fram datat på hur stor hela databasen är?

Tacksam för det suveräna svaret!=)

Mvh
-- Rincewind

Medlem sedan sep. 200350 inlägg
#9

Här är ett litet php script som räknar ihop hur stor hela valda tabellen är...

$data_length=0;
$index_length=0;
$sql = "SHOW TABLE STATUS";
$result = mysql_query($sql) or die("Invalid query: " . mysql_error());
while($r=mysql_fetch_array($result))
{
	$data_length += $r['Data_length'];
	$index_length += $r['Index_length'];
}
echo "Data_length: ".number_format($data_length,0,3,',')." bytes<br>";
echo "Index_length: ".number_format($index_length,0,3,',')." bytes<br>";
Medlem sedan nov. 2003104 inlägg
#10

Oki tackar munktell=)

Men fortfarande en while sats. Dvs man räknar ihop varje svar.
En fråga som ger flera svar som man sedan räknar ihop..

Går det inte att fråga MySQL med en fråga som ger ETT svar som bara säger hur stor hela databasen är?.

Visst fungerar ditt svar, men anledningen varför jag inte vill köra en förfrågan som räknar ihop det hela är för att jag tycker det blir slött (iallafall slöare än att få ett svar).
Denna fråga kommer att köras varje gång någon klickar på min sida.

Tacksam för svar.
Mvh
-- Rincewind

308 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
131 ms — deklarationer (db)
0 ms — hämta statistik (cache)
173 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)