1. Co je MySQL TINYINT?
V MySQL je datový typ TINYINT používán k ukládání velmi malých celých čísel. TINYINT spotřebovává 1 bajt (8 bitů) paměti a může obsahovat hodnoty od -128 do 127, když je podepsaný, nebo od 0 do 255, když je nepodepsaný. TINYINT se používá především k efektivnímu řízení malých čísel nebo hodnot podobných booleanu.
Klíčové vlastnosti TINYINT
- Efektivita paměti : Protože
TINYINTpoužívá pouze 1 bajt, ušetří paměť ve srovnání s jinými typy celých čísel, jako jeINTneboBIGINT. - Možnosti podepsaný a nepodepsaný : Podepsaný TINYINT může zpracovávat záporné hodnoty, zatímco nepodepsaná verze rozšiřuje maximální rozsah pro kladné čísla.
Příklad použití TINYINT
Následující příklad vytváří tabulku, která používá typ TINYINT k řízení malých čísel nebo příznaků:
CREATE TABLE user_status (
user_id INT PRIMARY KEY,
is_active TINYINT(1) NOT NULL DEFAULT 0
);
Zde je sloupec is_active definován jako TINYINT(1) a používá se k označení, zda je uživatel aktivní. Hodnota 0 znamená „neaktivní“, zatímco 1 znamená „aktivní“.
2. Kdy použít TINYINT
TINYINT je ideální pro zpracování malých celých čísel a boolean hodnot. Používá se široce k maximalizaci výkonu databáze při úspoře úložiště.
Použití TINYINT jako boolean
Protože MySQL nemá vyhrazený typ BOOLEAN, často se používá TINYINT(1) k ukládání boolean hodnot. Obvykle se 0 považuje za „false“ a 1 za „true“. To usnadňuje řízení příznaků v databázi.
UPDATE user_status SET is_active = NOT is_active WHERE user_id = 1;
Tento příklad přepíná hodnotu is_active pro zadaného uživatele a umožňuje snadné přepínání booleanu.
Řízení malých čísel
TINYINT je také užitečný pro ukládání malých rozsahů čísel, jako jsou počty skladových zásob produktů. Pokud množství produktů nikdy nepřekročí 255, je TINYINT UNSIGNED dostatečný pro efektivní zpracování dat.

3. Srovnání TINYINT s jinými typy celých čísel
MySQL poskytuje více datových typů celých čísel, ale TINYINT je nejmenší z hlediska velikosti. Naopak INT a BIGINT mohou ukládat mnohem větší rozsahy hodnot. Níže uvedená tabulka zdůrazňuje rozdíly.
TINYINT vs INT
INT používá 4 bajty a podporuje hodnoty od -2147483648 do 2147483647, zatímco TINYINT používá pouze 1 bajt a zpracovává hodnoty od -128 do 127 (podepsaný) nebo od 0 do 255 (nepodepsaný). To činí TINYINT paměťově efektivnějším pro menší rozsahy dat.
Jiné malé typy celých čísel
MySQL také nabízí SMALLINT (2 bajty) a MEDIUMINT (3 bajty). Každý typ má různé rozsahy hodnot, takže volba správného typu závisí na velikosti dat, která potřebujete ukládat.
4. Podepsaný vs nepodepsaný TINYINT
V MySQL lze TINYINT deklarovat jako podepsaný nebo nepodepsaný. Porozumění rozdílu zajišťuje efektivní a správné řízení dat.
Výhody nepodepsaného TINYINT
TINYINT UNSIGNED podporuje hodnoty od 0 do 255, což ho činí vhodným pro data, která nikdy nevyžadují záporná čísla. Například věk uživatele nebo množství produktů lze efektivně ukládat jako nepodepsaný TINYINT.
Výhody podepsaného TINYINT
Podepsaný TINYINT se pohybuje od -128 do 127, což ho činí vhodným, když jsou možné záporné hodnoty. Například ukládání teplot nebo relativních měření často vyžaduje podepsané hodnoty.

5. Praktické příklady TINYINT
Zde je příklad použití TINYINT k řízení množství produktů v tabulce:
CREATE TABLE products (
product_id INT PRIMARY KEY,
quantity TINYINT UNSIGNED NOT NULL
);
V tomto příkladu sloupec quantity používá TINYINT UNSIGNED a může ukládat hodnoty až do 255. Omezení NOT NULL zajišťuje, že každý produkt musí mít definované množství.
TINYINT je také užitečný pro řízení stavů uživatelů nebo příznaků. Zejména ve velkých datových sadách může použití TINYINT zlepšit výkon databáze snížením režie úložiště.
6. Shrnutí a nejlepší postupy
TINYINT je jedním z nejpaměťově úspornějších datových typů v MySQL, díky čemuž je ideální pro zpracování malých celých čísel a příznaků. Ať už pro boolovské hodnoty nebo malé rozsahy čísel, použití TINYINT pomáhá optimalizovat jak úložiště, tak výkon vaší databáze.


