Kartais kyla klausimas: kokią įtaką lentelės stulpelių eilės tvarka lentelėje turi duomenų ištraukimo
greičiui? Kuriuos stulpelius reikėtų talpinti eilutės pradžioje? Ar tam turi įtakos stulpelio duomenų kiekis (baitų
skaičius)?
Padžioje prisiminkime bendrus pagrindus. Duomenų eilutė duomrnų bazės bloke yra saugoma maždaug taip:
[NULL požymis][ilgis][duomenys] ... [NULL požymis][ilgis][duomenys]
Tad, norint paimti trečią eilutės stulpelį, DB turi praeiti pro pirmus du stulpelius - baitas po baito, net jei
stulpeliai yra skaitiniai, datos ir pan. Juk stulpelio turinys saugomas kaip ilgis, po kurio eina nurodytas baitų skaičius
duomenų.
Iš čia atrodo, kad dažniau naudojami stulpeliai turėtų būti arčiau eilutės pradžios.
Tačiau gali būti, kad stulpeiai gali turėti NULL reikšmę, kas reiškia, kad duomenų baitų visai nėra. Tačiau iš tikro
tai monkės biznis stulpelių,turinčių labai daug NULL reikšmių, talpinimas eilutės gale gali sutaupyti kelis baitus,
tačiau tai šiokią tokią prasmę teturi ypač didelėms lentelėms.
Neturi prasmės ilgus stulpelius (VARCHAR2) talpinti eilutės gale. Vėl prisiminkime prieš tai pateiktą duomenų
saugojimo būdą, iš kurio seka, pvz.:
- simbolių eilutei skirtas NULL požymio baitas, 1 (<256) arba 2 (>256) duomenų ilgio baitai bei pačios simbolių
eilutės baitai;
- skaičiui skirtas skirtas NULL požymio baitas, duomenų ilgio baitai (skaičiaus reikšmė užima 0-22 baitus) bei
baitai, perteikiantys skaičiaus reikšmę;
- binary_float skirta NULL požymio baitas ir 4 baitai reikšmei;
- ir t.t.
Jei atliksime eksperimentą, ir iš lentelės, turinčios daug stulpelių, trauksime pirmojo ir paskutinio stulpelio
reikšmes (SELECT C1 from T; SELECT CN from T ) ir skaičiuosime operacijų trukmę, pastebėsime, kad antruoju
atveju sunaudojama šiek tiek daugiau laiko.
Tad įsitikinome, kad kuo toliau yra stulpelis, tuo daugiau laiko trunka jo reikšmės paėmimas. Tačiau neteisingas
teiginys: kuo ilgesnė stulpelio reikšmė, tuo toliau turi būti tas stulpelis.
Ir vis tik gal nevertėtų kvaršinti galvos šiais klausimais ir naudoti stulpelius ta tvarka, kuri atrodo geriausia
estetiniu ir projektiniu požiūriu.
Kiti HOT.LT straipsniai:
Virusinis marketingas
Pirmasis interneto ryšys
Dygios JavaScript eilutės
Bilas Geitsas: kol dar nebuvo garsus
Styvo Džobso kelias į žvaigždes
Technika: Nuo Paleolito laikų
Algebra akimirksniu
Ką vadiname programuotoju?
MS SQL užklausų rezultatų puslapiavimas
WebService naudojimas Asp.Net aplinkoje
Unix ir C kalbos kiltis ir ... šachmatai
V. Bušas: žmogus, kuris neišrado kompiuterio
Paskaičiuojamo stulpelio sukūrimas
Tikroji Interneto pabaiga
Ar mašina kada nors mąstys?
P-NP: Ant sveiko proto svarstyklių
AWK kalba - sena ir nuolat aktuali
Programavimo kalbų evoliucija
.Net palydėtuvės
Nulio istorija
Haketonai
|