Partition (databáze)
Z Wikipedie, otevřené encyklopedie
Obsah |
[editovat] Úvodní přiblížení
Partitioning je technologie sloužící v relační databázi k fyzickému rozdělení rozsáhlých datových tabulek do menších částí na základě logického členění dat v tabulce. Pokud databázový server poskytuje takovou možnost (jak je tomu například u databázového serveru Oracle), umožňuje tato technologie snadnější a rychlejší manipulaci s tabulkami, jejichž velikost se pohybuje na hranici možností použitých systémových prostředků.
[editovat] Nastavení partitioningu
V rámci vytvoření tabulky (příkaz CREATE TABLE jazyka SQL) je možné definovat, na základě kterého sloupce ve struktuře tabulky a podle jakých kritérií bude tabulka členěna.
[editovat] Příklad 1 - statický partitioning
Tabulka titulů v katalogu firmy distribuující hudební nahrávky může být členěna podle počátečního písmena názvu - vzniká tabulka s předem pevně daným počtem partitions.
[editovat] Příklad 2 - dynamický partitioning
Tabulka zákaznických objednávek v databázi téže firmy může být členěna podle data pořízení objednávky a to po kalendářních měsících (jeden měsíc - jedna partition). Vzniká tak tabulka s dynamicky rostoucím počtem partitions - každý měsíc přibude jedna nová.
[editovat] Použití partitioningu
Užitečnost partitioningu vyplývá z možnosti pracovat nikoliv s celou tabulkou, ale pouze s její relevantní částí - jednou nebo několika partitions:
- Tabulku lze uložit do několika souborů, z nichž každý může být dokonce uložen na jiném disku - to je vhodné především u velkých tabulek jako jsou faktové tabulky v datovém skladu.
- Procesy, které hromadně mění data v tabulce, jsou řádově rychlejší, pokud se mohou „opřít“ o způsob členění tabulky do partitions - například u mazání starých dat (příkazem DELETE jazyka SQL) může být tento rozdíl oproti stejnému příkazu spuštěnému nad nerozdělenou velkou tabulkou až tisícinásobný.
- Každá z partitions může mít trochu jiné nastavení z pohledu její správy - pokud se přidržím příkladu 2 z předchozího odstavce, tak je jen logické, aby partitions obsahující objednávky starší tří měsíců byly pouze pro čtení (read-only), což podstatně sníží časové a kapacitní nároky na zálohování celé tabulky.
- Při vhodném použití indexů pracuje většina běžných procesů (přidání řádku do tabulky, změna v jednom nebo několika řádcích, získání dat z tabulky za určité omezené časové období apod.) nad jednou konkrétní partition. Podstatně se tím zvyšuje počet uživatelů, kteží mohou s tabulkou pracovat paralelně, aniž by se vzájemně omezovali - tato vlastnost se ještě umocňuje, pokud je databáze umístěna na víceprocesorovém serveru.

