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 (ntINT
võiBIGINT
). - 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.