Sharding
Sharding je praxe optimalizace systémů správy databází oddělením řádků nebo sloupců větší databázové tabulky do několika menších tabulek. Nové tabulky se nazývají „střepy“ (nebo diskových oddílů), a každá nová tabulka má stejné schéma, ale jedinečné řádky (jako je tomu v případě „horizontální sharding“), nebo má schéma, které je vlastní podmnožina původní tabulky schématu (jako je tomu v případě „vertikální sharding“).
proč se Sharding používá?
Sharding je běžný koncept v škálovatelných databázových architekturách. Shardováním větší tabulky můžete ukládat nové kusy dat, nazývané logické střepy, do více uzlů, abyste dosáhli horizontální škálovatelnosti a zlepšeného výkonu. Jakmile je logický střep uložen na jiném uzlu, označuje se jako fyzický střep.
Při spuštění databáze na jednom počítači, budete nakonec dosáhne limitu množství výpočetních zdrojů, které můžete aplikovat na jakékoliv dotazy, a budete zřejmě dosáhnout maximální množství dat, s nimiž můžete efektivně pracovat. Horizontálně měřítko, můžete povolit flexibilní databáze design, který zvyšuje výkon ve dvou hlavních způsobů:
- S masivně paralelní zpracování, můžete využít všechny výpočetní zdroje napříč clusteru pro každý dotaz.
- protože jednotlivé střepy jsou menší než logická tabulka jako celek, musí každý stroj při odpovědi na dotaz skenovat méně řádků.
horizontální sharding je účinný, když dotazy mají tendenci vracet podmnožinu řádků, které jsou často seskupeny dohromady. Například dotazy, které filtrovat data na základě krátkého data rozsahy jsou ideální pro horizontální sharding od data rozsah bude nutně omezit dotazování pouze podmnožinu servery.
vertikální sharding je účinný, když dotazy mají tendenci vracet pouze podmnožinu sloupců dat. Pokud například některé dotazy vyžadují pouze jména a jiné vyžadují pouze adresy, mohou být jména a adresy sdíleny na samostatných serverech.
také sharded databáze mohou nabídnout vyšší úroveň dostupnosti. V případě výpadku v nezaostřené databázi je celá aplikace nepoužitelná. U sdílené databáze jsou nepoužitelné pouze části aplikace, které se spoléhaly na chybějící kousky dat. V praxi sharded databáze často dále zmírňují dopad těchto výpadků replikací záložních střepů na dalších uzlech.
jaký je rozdíl mezi štěpením a rozdělováním?
Sharding a partitioning jsou o rozdělení velké datové sady na menší podmnožiny. Rozdíl je v tom, že sharding znamená, že data jsou rozložena na více počítačů, zatímco rozdělení není. Rozdělení je o seskupování podmnožin dat v rámci jedné instance databáze. V mnoha případech, termíny sharding a partitioning jsou dokonce používány synonymně, zvláště když předcházejí termíny „horizontální“ a „vertikální“.“Takže“ horizontální štěpení „a“ horizontální dělení “ mohou znamenat totéž.
Související Témata
In-Memory výpočetního
Edge Computing
Grid Computing
Další Čtení
Hazelcast IMDG 3.12 Zavádí CP Subsystému