Co je MySQL TINYINT? Rozsah, použití UNSIGNED a praktické příklady

1. Co je MySQL TINYINT?

V MySQL je TINYINT datový typ určený k ukládání velmi malých celých čísel. TINYINT zabírá 1 byte (8 bitů) paměti a může ukládat hodnoty od -128 do 127 v signed režimu, nebo od 0 do 255 v unsigned režimu. TINYINT se používá hlavně pro efektivní správu malých číselných hodnot a booleanových příznaků.

Vlastnosti TINYINT

  • Úspora paměti: Protože TINYINT používá pouze 1 byte, šetří více paměti ve srovnání s jinými celočíselnými typy, jako jsou INT nebo BIGINT.
  • Možnosti signed a unsigned: Signed TINYINT může obsahovat záporné hodnoty, zatímco volba unsigned rozšiřuje maximální kladný rozsah.

Příklad použití TINYINT

V následujícím příkladu je vytvořena tabulka používající typ TINYINT pro správu malých číselných hodnot a příznaků.

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

V tomto příkladu je sloupec is_active definován jako TINYINT(1) a slouží k řízení, zda je uživatel aktivní. Hodnota 0 označuje „neaktivní“ a 1 označuje „aktivní“.

2. Praktické případy použití TINYINT

TINYINT je ideální datový typ pro správu malých celých čísel a booleanových hodnot. Často se používá ke zvýšení výkonu databáze a snížení spotřeby úložiště.

Použití TINYINT jako Boolean hodnoty

Protože MySQL nemá samostatný typ BOOLEAN, běžně se jako náhrada používá TINYINT(1) pro správu booleanových hodnot. Obvykle 0 představuje „false“ a 1 představuje „true“. Tento přístup usnadňuje správu příznaků.

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

V tomto příkladu se přepíná hodnota is_active pro zadaného uživatele. To umožňuje jednoduché přepínání booleanových hodnot.

Správa malých číselných hodnot

Například TINYINT je také efektivní při správě celých čísel v velmi úzkém rozsahu, jako jsou počty zásob produktů. Pokud počet produktů nepřesáhne 255, použití TINYINT UNSIGNED poskytuje dostatečnou správu dat v unsigned číselném rozsahu.

3. Porovnání TINYINT s ostatními celočíselnými typy

MySQL nabízí různé celočíselné typy a TINYINT je mezi nimi nejmenší. Naopak INT a BIGINT mohou ukládat mnohem větší rozsahy hodnot. Níže jsou uvedeny rozdíly mezi TINYINT a dalšími hlavními celočíselnými typy.

Rozdíl mezi INT a TINYINT

INT používá 4 byty a podporuje hodnoty od -2147483648 do 2147483647, zatímco TINYINT používá pouze 1 byte a podporuje hodnoty od -128 do 127 (signed) nebo od 0 do 255 (unsigned). Použitím TINYINT můžete efektivně spravovat data v odpovídajícím rozsahu a zároveň šetřit paměť.

Porovnání s ostatními malými celočíselnými typy

Kromě TINYINT MySQL poskytuje datové typy jako SMALLINT (2 byty) a MEDIUMINT (3 byty). Číselný rozsah se liší podle velikosti v bytech každého typu, takže je důležité vybrat vhodný datový typ.

4. Volba mezi signed a unsigned

V MySQL může být typ TINYINT definován jako signed nebo unsigned. Porozumění rozdílu a správná volba vede k efektivnější správě dat.

Výhody unsigned TINYINT

Unsigned TINYINT (TINYINT UNSIGNED) podporuje hodnoty od 0 do 255, což je užitečné, když nejsou potřeba záporné hodnoty. Například při ukládání věku uživatele nebo množství produktu – kde záporné hodnoty nemají smysl – rozšíření pomocí UNSIGNED zvětšuje použitelné rozmezí a umožňuje efektivnější správu dat.

Výhody signed TINYINT

Signed TINYINT podporuje hodnoty od -128 do 127, což je vhodné, když jsou potřeba záporné hodnoty. Například pro data jako teplota, kde mohou nastat záporné hodnoty, je signed varianta vhodná.

5. Příklad použití TINYINT

.Zde je příklad, jak použít TINYINT k řízení dat v databázi. Například při správě množství produktů můžete definovat tabulku následovně:

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

V tomto příkladu je skladové množství quantity spravováno jako neoznačený (unsigned) TINYINT, což umožňuje hodnoty až do 255. Navíc zadáním NOT NULL zajistíte, že hodnota bude vždy nastavena.

Můžete také použít TINYINT k řízení stavových příznaků uživatelů jednoduchým a efektivním způsobem. Zejména při zpracování velkého objemu dat může použití TINYINT zlepšit celkový výkon databáze.

6. Shrnutí a osvědčené postupy

TINYINT je jedním z nejpaměťově úspornějších datových typů v MySQL a je ideální pro efektivní správu malých celých čísel a příznaků. Používáním TINYINT pro Boolean hodnoty nebo malé číselné rozsahy můžete optimalizovat jak využití úložiště, tak výkon databáze.