sql >> Databáze >  >> RDS >> Database

Relační vs nerelační databáze – 2. část

V mém předchozím příspěvku jsme viděli některé zásadní rozdíly mezi relačními a nerelačními databázemi. V tomto příspěvku si promluvme o škálovatelnosti těchto dvou.

Škálovatelnost

Je to schopnost systému, který dokáže snadno pojmout rychle příchozí data bez větších problémů s výkonem. To je hlavním faktorem, aby každý systém poskytoval dobrou škálovatelnost. Existují dva typy metod změny měřítka známé jako vertikální a horizontální měřítko.

Vertikální měřítko

Všechny nástroje relační databáze podporují vertikální škálování. Toto je metoda zvýšení výkonu systému přidáním dalšího CPU, paměti a diskového prostoru. Aby bylo možné rychle přijímat data, je jediný produkční server optimalizován pro rozšíření. V této škálovací technice je vždy jeden produkční server, ke kterému mohou být připojeny všechny aplikace a uživatelé. Clusterové prostředí lze vytvořit s některými uzly a replikovat data mezi uzly.

Kvůli vlastnostem ACID by všechny uzly měly mít stejnou sadu dat a synchronizace dat se komplikuje, pokud je v clusteru několik uzlů. To je velmi optimalizováno pro čtení měřítka. Vertikální škálování je také známé jako škálování
Výhodou této metodologie škálování je těsná integrace dat a jejich konzistence napříč uzly v clusteru. Všechny uzly budou mít stejnou sadu dat a pokud dojde k problému s produkčním serverem, aplikace automaticky připojí další uzel. Tento cluster je tedy známý jako cluster s přepnutím při selhání.

Horizontální měřítko

Všechny nerelační databázové nástroje podporují horizontální škálování. Jedná se o metodu přidání více počítačů do sítě, aby bylo možné rychle přijímat data. Je snadné přidat další uzly do clusteru, aby se umožnil růst dat. Data jsou automaticky rozdělena a zpracovávána mezi uzly v clusteru. Toto je distribuované datové prostředí. Hadoop Distributed File System (HDFS) je toho klasickým příkladem. Horizontální změna měřítka se také nazývá Scale-out.

Výhodou této techniky škálování je to, že jelikož jsou data rozdělena a replikována mezi uzly, pokud některý z uzlů přejde do režimu offline, aplikace může stále mít data z jiných uzlů a to zaručuje dostupnost dat po celou dobu. Tato metoda je velmi užitečná v případech, kdy mezi daty uzlů nejsou vyžadovány žádné JOINy. To je také užitečné při oddělování dat a jejich umístění v různých geografických lokalitách.

Zatímco obě tyto techniky škálování mají výhody a nevýhody, dobré prostředí může obě tyto kombinovat, aby bylo dosaženo vynikajícího škálování a škálování. Můžeme mít škálovatelnou databázi pro čtení a zápis na jediném serveru, který vyžaduje vlastnosti ACID, a mít škálovaná distribuovaná historická data napříč několika uzly pro účely dolování dat.


  1. Je COUNT(rowid) rychlejší než COUNT(*)?

  2. Postgres analogie k CROSS APPLY na SQL Server

  3. Oracle:Jak převedu hex na desítkové v Oracle SQL?

  4. Předávání pole ints do T-SQL uloženého procesu prostřednictvím entity framework