MySQL TINYINT: Väikeste täisarvude ja loogiliste väärtuste tõhus haldamine

1. Mis on MySQL TINYINT?

TINYINT MySQL-is on andmetüüp, mida kasutatakse väga väikeste täisarvude salvestamiseks. TINYINT kasutab 1 baiti (8 bitti) mälu ja võib salvestada arve vahemikus -128 kuni 127 (märgiga) või 0 kuni 255 (märgita). Seda kasutatakse peamiselt väikeste arvude või loogiliste väärtuste (true/false) tõhusaks haldamiseks.

TINYINT omadused

  • Mälusäästlikkus: kuna TINYINT kasutab ainult 1 baiti, säästab see rohkem mälu kui teised täisarvutüübid (nt INT või BIGINT).
  • Märgiga ja märgita: märgiga saab salvestada ka negatiivseid väärtusi, samas kui märgita suurendab positiivsete arvude ulatust.

TINYINT kasutamise näide

Järgmises näites luuakse tabel, mis haldab väikseid väärtusi või lippusid (flags) TINYINT abil.

CREATE TABLE user_status (
    user_id INT PRIMARY KEY,
    is_active TINYINT(1) NOT NULL DEFAULT 0
);

Selles näites on veerg is_active määratletud kui TINYINT(1) ja seda kasutatakse, et hallata, kas kasutaja on aktiivne. Väärtus 0 tähendab „mitteaktiivne”, 1 tähendab „aktiivne”.

2. Kus TINYINT sobib kasutada

TINYINT on ideaalne väikeste täisarvude või loogiliste väärtuste haldamiseks. Seda kasutatakse laialdaselt jõudluse parandamiseks ja salvestusruumi säästmiseks.

Loogiliste väärtuste (Boolean) haldamine

Kuna MySQL-is puudub spetsiaalne BOOLEAN andmetüüp, kasutatakse selle asemel TINYINT(1). Tavaliselt tähendab 0 „vale” ja 1 „tõene”. See teeb lihtsaks lippude haldamise.

UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;

Selles näites väärtus is_active lülitatakse vastupidiseks. Nii saab kiiresti muuta olekut „aktiivne/mitteaktiivne”.

Väikeste täisarvude haldamine

Näiteks toodete laoseisu puhul, kui arv ei ületa 255, sobib TINYINT UNSIGNED väga hästi, kuna negatiivseid väärtusi pole vaja.

3. TINYINT ja teised täisarvutüübid

MySQL-is on saadaval mitmed täisarvutüübid, kuid TINYINT on neist väikseim. INT ja BIGINT võimaldavad salvestada oluliselt suuremaid arve. Järgnevalt võrdlus.

Võrdlus INT-iga

INT kasutab 4 baiti ja võib salvestada arve vahemikus -2147483648 kuni 2147483647. TINYINT aga kasutab vaid 1 baiti ja katab -128 kuni 127 (märgiga) või 0 kuni 255 (märgita). See teeb TINYINT-ist sobiva valiku, kui vaja on väikest ulatust ja mälusäästlikkust.

Võrdlus teiste väikeste täisarvutüüpidega

Lisaks TINYINT-ile on olemas SMALLINT (2 baiti), MEDIUMINT (3 baiti). Õige andmetüübi valik sõltub andmevahemiku vajadustest.

4. Märgiga ja märgita kasutamine

TINYINT saab määratleda kas märgiga või märgita. Mõlema erinevuse mõistmine aitab valida õige variandi.

Märgita TINYINT eelised

TINYINT UNSIGNED ulatub 0-st kuni 255-ni. Sobib juhul, kui negatiivseid väärtusi pole vaja, näiteks vanuse või koguse salvestamisel.

Märgiga TINYINT eelised

Märgiga TINYINT ulatub -128-st kuni 127-ni ja sobib siis, kui ka negatiivseid väärtusi on vaja, näiteks temperatuuri puhul.

5. TINYINT praktilised näited

Siin on näide, kuidas TINYINT abil hallata toodete kogust.

CREATE TABLE products (
    product_id INT PRIMARY KEY,
    quantity TINYINT UNSIGNED NOT NULL
);

Selles tabelis hallatakse veergu quantity märgita TINYINT abil, mis võimaldab väärtusi kuni 255. NOT NULL tagab, et väärtus peab alati olema määratud.

Samuti saab TINYINT-i kasutada kasutaja oleku või muude lippude haldamiseks, mis muudab andmebaasi lihtsamaks ja tõhusamaks.

6. Kokkuvõte ja parimad kasutusviisid

TINYINT on MySQL-i andmetüüpide seas väga mälusäästlik ja sobib väikeste arvude või lippude haldamiseks. Loogiliste väärtuste haldamisel või väikeste täisarvude puhul aitab TINYINT optimeerida nii jõudlust kui ka salvestusruumi.