Avatar billede supermand69 Nybegynder
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??
Avatar billede dsj Nybegynder
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).
Avatar billede arne_v Ekspert
21. august 2004 - 21:20 #2
Avatar billede arne_v Ekspert
21. august 2004 - 21:20 #3
VARCHAR er 1+længde ikke 2*længde
Avatar billede dsj Nybegynder
21. august 2004 - 21:33 #4
Ja, så optager den kun 1 byte pr. tegn... :)
Avatar billede arne_v Ekspert
21. august 2004 - 21:43 #5
Jeg tror at du tænkte på SQLServer NVARCHAR
Avatar billede supermand69 Nybegynder
22. august 2004 - 13:08 #6
øhm.... hvordan kunne min kode f.eks. se ud?! :) jeg bruger int, varchar og text
Avatar billede arne_v Ekspert
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) ...
Avatar billede supermand69 Nybegynder
22. august 2004 - 14:51 #8
hvad er forskellen på at bruge tinyint, int osv.?

hvor store tal kan de indeholde?
Avatar billede arne_v Ekspert
22. august 2004 - 15:36 #9
Avatar billede supermand69 Nybegynder
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??
Avatar billede supermand69 Nybegynder
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?
Avatar billede arne_v Ekspert
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)
Avatar billede supermand69 Nybegynder
24. august 2004 - 20:47 #13
tak for hjælpen :)
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