21. august 2004 - 18:18
Der er
12 kommentarer og 1 løsning
størrelse på rækker
hvordan kan man finde størrelsen (kb) på nogle rækker i en table?? jeg ved at man kan finde størrelsen for en hel table således: $get = mysql_query("SHOW TABLE STATUS FROM $db LIKE '$table'"); $row = mysql_fetch_array($get); $disk_used = $row['Data_length'] + $row['Index_length']; men hvordan kan man finde størrelsen for alle rækker i en table hvor eksempelvis feltet user_id er 34??
Annonceindlæg fra HP
21. august 2004 - 19:38
#1
Du bliver nødt til at hente alle data i den givne række ud, og lægge manuelt sammen. De mest almindelige kolonne-type fylder: Integer: 4 bytes Big integer: 8 bytes Small integer: 2 bytes Float: 4 bytes Double: 8 bytes For varchar's gælder, at de fylder de antallet af tegn ganget med 2 bytes (jeg mener i hvert fald at det er 2 bytes).
21. august 2004 - 21:20
#2
21. august 2004 - 21:20
#3
VARCHAR er 1+længde ikke 2*længde
21. august 2004 - 21:33
#4
Ja, så optager den kun 1 byte pr. tegn... :)
21. august 2004 - 21:43
#5
Jeg tror at du tænkte på SQLServer NVARCHAR
22. august 2004 - 13:08
#6
øhm.... hvordan kunne min kode f.eks. se ud?! :) jeg bruger int, varchar og text
22. august 2004 - 14:36
#7
Hvis din tabel består a int b varchar c text så: SELECT 4+1+LENGTH(b)+2+LENGTH(c) ...
22. august 2004 - 14:51
#8
hvad er forskellen på at bruge tinyint, int osv.? hvor store tal kan de indeholde?
22. august 2004 - 15:36
#9
24. august 2004 - 20:07
#10
hvordan kunne jeg f.eks. analysere en table først med hensyn til felterne og så derefter finde størrelsen på mine rækker??
24. august 2004 - 20:17
#11
glem det forrige jeg skrev :) vil det sige at i tekst felter som char, varchar, text osv at hvert tegn fylder 1 byte?
24. august 2004 - 20:42
#12
Ja (med undtagelser som at hvis du gemmer special tegn som ÆØÅ i UTF-8 så fylder lige netop de bogstaver 2 bytes - i ISO-8859-1 fylder alle tegn 1 byte)
24. august 2004 - 20:47
#13
tak for hjælpen :)
Computerworld tilbyder specialiserede kurser i database-management