PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
MySQL veerutyypide CHAR ja VARCHAR v6rdlus
Postitaja: PHP.ee 2002-01-09 12:59:41
Artikli "MySQL veerutyypide CHAR ja VARCHAR v6rdlus" kommentaarid kirjuta siia

Viimati muudetud: 09-01-2002 13:01:16
Muutja: martin
Põhjus:

RE: MySQL veerutyypide CHAR ja VARCHAR v6rdlus
Postitaja: tfr 2002-09-18 15:30:48

CHAR ja VARCHAR vahe on küll ära seletatud, küll aga pole sõnagagi seletatud seda, milleks kaks sellist erinevat tüüpi kasulikud võivad olla.


VARCHAR eeliseks on kindlasti ruumi kokkuhoid - kui teha VARCHAR(255) tüüpi väli ja kirjutada sinna sisse "ab", siis ei raisata kõvakettal ära 255 baiti ruumi, vaid kõigest 3 ("ab" + 0 kui stringi lõpu tunnus).


Et milleks siis CHAR? Selle eelised tulevad mängu siis, kui on tegu suure andmebaasiga, kus oluline on kiirus, mitte mõned megad kokkuhoidu kõvakettaruumis. Nimelt, kui teha tabeli struktuur selline, et seal on ainult väljad, mis kõik on kindla pikkusega (ehk siis INT, CHAR, jne, aga mitte VARCHAR või TEXT/BLOB), siis on ka terve tabeli rida failis alati kindla pikkusega. Ja MySQL server võib tabelist 34 rea kättesaamiseks teha ühe arvutuse (34 * reapikkus), seekida failis sinna ja lugeda rea. Muutuva pikkusega rea puhul seda teha ei saa ja kogu tabel tuleb "läbi kammida".


Kuna see on CHAR välja ainus eelis, siis juhul, kui tabel sisaldab muutuva pikkusega välju, muudab MySQL automaatselt kõik CHAR väljad VARCHAR väljadeks, kuna nende eelis on niikuinii kadunud, ja pole mõtet ruumi raisata.


Indrek
tfr@mysql.com


Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.00794196128845