webForumDet fria alternativet

Databas storlek?

9 svar · 448 visningar · startad av rincewind

rincewindMedlem sedan nov. 2003104 inlägg
#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

BulletBoyCrimeMedlem 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!

HenricMedlem 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

PeeerMedlem sedan mars 20025 907 inlägg
#4

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

rincewindMedlem 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

ThomasaMedlem 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?

kjellMedlem 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.

rincewindMedlem 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

munktellMedlem 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>";
rincewindMedlem 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

265 ms totalt · 3 externa anrop · v20260731065814-full.30151723
135 ms — hämta forumlista (db)
128 ms — hämta statistik (db)
129 ms — hämta tråd, inlägg och bilagor (db)