SQLite vs MySQL vs PostgreSQL: Porovnání Relační Databáze Systémů Řízení

Úvod

relační model dat, který organizuje data do tabulek, řádků a sloupců, převládá v nástroje pro správu databáze. Dnes existují i jiné datové modely, včetně NoSQL a NewSQL, ale relační databáze systémů řízení (RDBMSs) zůstávají dominantní pro ukládání a správu dat po celém světě.

tento článek porovnává a kontrastuje tři nejrozšířenější open-source RDBMSs: SQLite, MySQL a PostgreSQL. Konkrétně prozkoumá datové typy, které každý RDBMS používá, jejich výhody a nevýhody a situace, kdy jsou nejlépe optimalizovány.

trochu o systémech správy databází

databáze jsou logicky modelované shluky informací nebo dat. Na druhé straně systém správy databází (DBMS) je počítačový program, který interaguje s databází. DBMS umožňuje řídit přístup k databázi, zapisovat data, spouštět dotazy a provádět jakékoli další úkoly související se správou databáze. Ačkoli systémy správy databází jsou často označovány jako „databáze“, tyto dva pojmy nejsou zaměnitelné. Databáze může být jakákoliv sbírka dat, ne jen jeden uložený v počítači, zatímco DBMS je software, který umožňuje interakci s databází.

Všechny databázové systémy mají základní model, který struktury, jak jsou data uložena a přístupná. Systém správy relačních databází je DBMS, který využívá relační datový model. V tomto modelu jsou data uspořádána do tabulek, které jsou v kontextu RDBMS formálně označovány jako vztahy. Relace je množina n-tic, nebo řádků v tabulce, s každou n-tice sdílení soubor atributů, nebo sloupce:

Diagram příklad ukazuje, jak se vztahy, n-tice, a atributy se vztahují k sobě navzájem

Většina relačních databází pomocí structured query language (SQL) správa a data dotazu. Mnoho RDBMS však používá svůj vlastní dialekt SQL, který může mít určitá omezení nebo rozšíření. Tato rozšíření obvykle obsahují další funkce, které umožňují uživatelům provádět složitější operace, než by jinak mohli se standardním SQL.

Poznámka: Termín „standardní SQL“ se v této příručce objevuje několikrát. Standardy SQL jsou společně udržovány americkým Národním normalizačním Institutem (ANSI), Mezinárodní organizací pro normalizaci (ISO) a mezinárodní elektrotechnickou Komisí (IEC). Kdykoli tento článek zmiňuje „standardní SQL“ nebo „standard SQL“, odkazuje na aktuální verzi standardu SQL zveřejněnou těmito orgány.

je třeba poznamenat, že plný standard SQL je velký a složitý: full core SQL: 2011 compliance vyžaduje 179 funkcí. Z tohoto důvodu většina RDBMS nepodporuje celý standard, i když některé se blíží plnému souladu než jiné.

každému sloupci je přiřazen datový typ, který určuje, jaké položky jsou v tomto sloupci povoleny. Různé RDBMS implementují různé datové typy, které nejsou vždy přímo zaměnitelné. Některé běžné datové typy zahrnují data, řetězce, celá čísla a Booleans.

číselné datové typy mohou být buď podepsány, což znamená, že mohou představovat kladná i záporná čísla, nebo nepodepsané, což znamená, že mohou představovat pouze kladná čísla. Například datový typ MySQL tinyint může obsahovat 8 bitů dat, což odpovídá 256 možným hodnotám. Podepsaný rozsah tohoto datového typu je od -128 do 127, zatímco nepodepsaný rozsah je od 0 do 255.

někdy správce databáze uloží do tabulky omezení, aby omezil, jaké hodnoty do ní lze zadat. Omezení se obvykle vztahuje na jeden konkrétní sloupec, ale některá omezení se mohou vztahovat také na celou tabulku. Zde jsou některá omezení, která se běžně používají v SQL:

  • UNIQUE: Použití tohoto omezení na sloupec zajišťuje, že žádné dvě položky v tomto sloupci nejsou identické.
  • NOT NULL: Toto omezení zajišťuje, že sloupec nemá žádné NULL položky.
  • PRIMARY KEY: kombinace UNIQUENOT NULLPRIMARY KEY omezení zajišťuje, že žádný záznam ve sloupci je NULL a že každý záznam je odlišné.
  • FOREIGN KEYFOREIGN KEY je sloupec v jedné tabulce, který odkazuje na PRIMARY KEY jiné tabulky. Toto omezení se používá k propojení dvou tabulek spolu: vstupy do FOREIGN KEY sloupce již musí existovat v mateřské PRIMARY KEY sloupce pro zápis procesu uspět.
  • CHECK: toto omezení omezuje rozsah hodnot, které lze zadat do sloupce. Například, pokud vaše aplikace je určena pouze pro obyvatele Aljašky, můžete přidat CHECK omezení PSČ sloupci povolit pouze položky mezi 99501 a 99950.

Pokud se chcete dozvědět více o systémech správy databází, podívejte se na náš článek o porozumění databázím SQL a NoSQL a různým databázovým modelům.

Teď, když jsme probrali relační databáze systémů řízení obecně, pojďme se přesunout na první ze tří open-source relační databáze, tento článek se bude týkat: SQLite.

SQLite

SQLite je soběstačný, založené na souboru, a plně open-source RDBMS známý pro jeho přenositelnost, spolehlivost a silný výkon i v low-memory prostředí. Jeho transakce jsou v souladu s kyselinou, a to i v případech, kdy systém havaruje nebo prochází výpadkem proudu.

webová stránka projektu SQLite ji popisuje jako databázi bez serveru. Většina relačních databázových motorů je implementována jako serverový proces, ve kterém programy komunikují s hostitelským serverem prostřednictvím meziprocesní komunikace, která přenáší požadavky. S SQLite však jakýkoli proces, který přistupuje k databázi, čte a zapisuje přímo do souboru databázového disku. To zjednodušuje proces nastavení SQLite, protože eliminuje potřebu konfigurovat proces serveru. Stejně tak není nutná žádná konfigurace pro programy, které budou používat databázi SQLite: vše, co potřebují, je přístup k disku.

SQLite je svobodný a open-source software a pro jeho použití není vyžadována žádná zvláštní licence. Projekt však nabízí několik rozšíření-každé za jednorázový poplatek-které pomáhají s kompresí a šifrováním. Projekt navíc nabízí různé balíčky komerční podpory, každý za roční poplatek.

SQLite Podporované Datové Typy

SQLite umožňuje různé typy dat, uspořádány do následující skladování třídy:

Datový Typ Vysvětlení
null Zahrnuje všechny NULL hodnoty.
integer Podepsané celá čísla, uložená v 1, 2, 3, 4, 6, nebo 8 bajtů v závislosti na velikosti hodnoty.
real Reálná čísla, nebo s plovoucí desetinnou čárkou hodnoty, uložené jako 8-byte s plovoucí desetinnou čárkou.
text Text uložen pomocí kódování databáze, která může být buď UTF-8, UTF-16BE nebo UTF-16LE.
blob jakýkoli blob dat, s každou blob uloženou přesně tak, jak byla zadána.

v kontextu SQLite jsou pojmy „třída úložiště“ a „datový typ“ považovány za zaměnitelné. Pokud se chcete dozvědět více o datových typech SQLite a afinitě typu SQLite, podívejte se na oficiální dokumentaci SQLite k tomuto tématu.

výhody SQLite

  • malá stopa: jak název napovídá, Knihovna SQLite je velmi lehká. Ačkoli prostor, který používá, se liší v závislosti na systému, kde je nainstalován, může zabírat méně než 600KiB místa. Navíc je plně soběstačný, což znamená, že neexistují žádné externí závislosti, které musíte do systému nainstalovat, aby SQLite fungoval.
  • User-friendly: SQLite je někdy popisován jako“ zero-configuration “ databáze, která je připravena k použití po vybalení z krabice. SQLite neběží jako proces serveru, což znamená, že nikdy nemusí být zastaven, spuštěn nebo restartován a nepřichází s žádnými konfiguračními soubory, které je třeba spravovat. Tyto funkce pomáhají zefektivnit cestu od instalace SQLite k integraci s aplikací.
  • přenosný: Na rozdíl od jiných systémů pro správu databází, které obvykle ukládají data jako velkou dávku samostatných souborů, je celá databáze SQLite uložena v jednom souboru. Tento soubor může být umístěn kdekoli v hierarchii adresářů a může být sdílen prostřednictvím vyměnitelného média nebo protokolu přenosu souborů.

Nevýhody SQLite

  • Omezené souběžnosti: i když více procesů může přistupovat a dotazu na SQLite databáze ve stejné době, pouze jeden proces může provádět změny do databáze v daném okamžiku. To znamená, SQLite podporuje větší souběžnost, než většina ostatních embedded systémy pro správu databází, ale ne tolik, jako klient/server RDBMSs jako MySQL nebo PostgreSQL.
  • žádná správa uživatelů: databázové systémy často přicházejí s podporou uživatelů nebo spravovaných připojení s předdefinovanými přístupovými oprávněními k databázi a tabulkám. Protože SQLite čte a zapisuje přímo do běžného diskového souboru, jedinými použitelnými přístupovými oprávněními jsou typická přístupová oprávnění základního operačního systému. To dělá SQLite špatnou volbou pro aplikace, které vyžadují více uživatelů se speciálními přístupovými oprávněními.
  • Bezpečnost: databázový engine, který používá server může v některých případech poskytovat lepší ochranu od chyb v klientské aplikaci než serverless databázi jako SQLite. Například zbloudilé ukazatele v klientovi nemohou poškodit paměť na serveru. Také, protože server je jediné přetrvávající proces, klient-server databáze cancontrol přístup k datům s větší přesností než serverless databáze, která umožňuje více jemnozrnné zamykání a lepší souběžnosti.

kdy použít SQLite

  • vestavěné aplikace: SQLite je skvělá volba databáze pro aplikace, které vyžadují přenositelnost a nevyžadují budoucí rozšíření. Příklady zahrnují lokální aplikace pro jednoho uživatele a mobilní aplikace nebo hry.
  • přístup k Disku výměna: V případech, kdy aplikace potřebuje číst a zapisovat soubory na disk přímo, to může být výhodné používat SQLite pro další funkčnost a jednoduchost, která přichází s pomocí SQL.
  • testování: Pro mnoho aplikací může být přehnané testovat jejich funkčnost pomocí DBMS, který používá další proces serveru. SQLite má režim v paměti, který lze použít k rychlému spuštění testů bez režie skutečných databázových operací, což z něj činí ideální volbu pro testování.

Kdy nelze Použít SQLite

  • Pracovat se spoustou údajů: SQLite mohou technicky podporovat databáze až 140TB ve velikosti, tak dlouho, dokud disku, souborového systému a také podpory databáze požadavků na velikost. Web SQLite však doporučuje, aby každá databáze blížící se 1TB byla umístěna v centralizované databázi klient-server, protože databáze SQLite této velikosti nebo větší by byla obtížně spravovatelná.
  • vysoké objemy zápisu: SQLite umožňuje v daném okamžiku provádět pouze jednu operaci zápisu, což výrazně omezuje jeho propustnost. Pokud vaše aplikace vyžaduje spoustu operací zápisu nebo více souběžných spisovatelů, SQLite nemusí být pro vaše potřeby adekvátní.
  • je vyžadován přístup k síti: Protože SQLite je databáze bez serverů, neposkytuje přímý přístup k datům v síti. Tento přístup je zabudován do aplikace, takže pokud jsou data v SQLite umístěna na samostatném počítači od aplikace, bude vyžadovat spojení mezi motorem a diskem s vysokou šířkou pásma v síti. Jedná se o drahé, neefektivní řešení a v takových případech může být lepší volbou DBMS klient-server.

MySQL

Podle DB-Motory Žebříčku, MySQL byl nejvíce populární open-source RDBMS, protože místo, začal sledování databáze popularity v roce 2012. Jedná se o produkt bohatý na funkce, který pohání mnoho z největších světových webů a aplikací, včetně Twitteru, Facebook, Netflix, a Spotify. Začínáme s MySQL je relativně jednoduché, z velké části díky jeho vyčerpávající dokumentaci a velké komunitě vývojářů, stejně jako množství zdrojů souvisejících s MySQL online.

MySQL byl navržen pro rychlost a spolehlivost, na úkor plného dodržování standardního SQL. Vývojáři MySQL neustále pracují na bližším dodržování standardního SQL, ale stále zaostává za ostatními implementacemi SQL. Je však dodáván s různými režimy SQL a rozšířeními, které jej přibližují dodržování předpisů. Na rozdíl od aplikací používajících SQLite, aplikace používající databázi MySQL k ní přistupují prostřednictvím samostatného procesu démona. Protože proces serveru stojí mezi databází a dalšími aplikacemi, umožňuje větší kontrolu nad tím, kdo má přístup k databázi.

MySQL inspirovalo množství aplikací, nástrojů a integrovaných knihoven třetích stran, které rozšiřují jeho funkčnost a usnadňují práci. Některé z více široce používaných těchto nástrojů třetích stran jsou phpMyAdmin, DBeaver a HeidiSQL.

podporované datové typy MySQL

datové typy MySQL lze rozdělit do tří širokých kategorií: číselné typy, typy data a času a typy řetězců.

Číselné typy:

Datový Typ Vysvětlení
tinyint velmi malé číslo. Signovaný rozsah pro tento číselný datový typ je -128 až 127, zatímco nepodepsaný rozsah je 0 až 255.
smallint malé celé číslo. Podepsaný rozsah pro tento číselný typ je -32768 až 32767, zatímco nepodepsaný rozsah je 0 až 65535.
mediumint střední celé číslo. Signovaný rozsah pro tento číselný datový typ je -8388608 až 8388607, zatímco nepodepsaný rozsah je 0 až 16777215.
int nebo integer normální velikosti celé číslo. Signovaný rozsah pro tento číselný datový typ je -2147483648 až 2147483647, zatímco nepodepsaný rozsah je 0 až 4294967295.
bigint velké celé číslo. Podepsaný rozsah pro tento číselný datový typ je -9223372036854775808 až 9223372036854775807, zatímco nepodepsaný rozsah je 0 až 18446744073709551615.
float malé číslo s pohyblivou řádovou čárkou.
doubledouble precision nebo real normální velikosti (double-precision) desetinné číslo.
decdecimalfixed nebo numeric balené fixed-point číslo. Délka zobrazení záznamů pro tento datový typ je definována při vytvoření sloupce a každá položka dodržuje tuto délku.
bool nebo boolean Boolean je datový typ, který má pouze dvě možné hodnoty, obvykle buď true nebo false.
bit Typ bitové hodnoty, pro který můžete zadat počet bitů na hodnotu od 1 do 64.

typy Data a času:

Data Type Explanation
date A date, represented as YYYY-MM-DD.
datetime A timestamp showing the date and time, displayed as YYYY-MM-DD HH:MM:SS.
timestamp A timestamp indicating the amount of time since the Unix epoch (00:00:00 on January 1, 1970).
time A time of day, displayed as HH:MM:SS.
year A year expressed in either a 2 or 4 digit format, with 4 digits being the default.

String types:

Data Type Explanation
char A fixed-length string; položky tohoto typu jsou vyplněny vpravo mezerami, které splňují zadanou délku při uložení.
varchar řetězec proměnné délky.
binary Podobné char typ, ale binární byte řetězec určené délky, spíše než nonbinary řetězec znaků.
varbinary Podobné varchar typ, ale binární byte řetězce proměnné délky, spíše než nonbinary řetězec znaků.
blob A binary string with a maximum length of 65535 (2^16 – 1) bytes of data.
tinyblob A blob column with a maximum length of 255 (2^8 – 1) bytes of data.
mediumblob A blob column with a maximum length of 16777215 (2^24 – 1) bytes of data.
longblob A blob column with a maximum length of 4294967295 (2^32 – 1) bytes of data.
text A string with a maximum length of 65535 (2^16 – 1) characters.
tinytext A text column with a maximum length of 255 (2^8 – 1) characters.
mediumtext A text column with a maximum length of 16777215 (2^24 – 1) characters.
longtext A text column with a maximum length of 4294967295 (2^32 – 1) characters.
enum výčet, který je řetězec, objekt, který má jednu hodnotu ze seznamu hodnot, které jsou prohlásil, když je tabulka vytvořena.
set Podobný výčet, řetězec, objekt, který může mít nula nebo více hodnot, z nichž každý musí být vybrán ze seznamu povolených hodnot, které jsou specifikovány v tabulce je vytvořen.

Výhody MySQL

  • Popularitě a snadné použití: Jako jeden z nejpopulárnějších databázových systémů na světě není nedostatek správců databází, kteří mají zkušenosti s prací s MySQL. Podobně, tam je hojnost dokumentace v tisku a na internetu o tom, jak nainstalovat a spravovat databáze MySQL, stejně jako řada nástrojů třetích stran — jako je phpMyAdmin, jejichž cílem je zjednodušit proces začínáme s databází.
  • bezpečnost: MySQL je nainstalován skript, který vám pomůže zlepšit zabezpečení vaší databáze, nastavením zařízení a jeho zabezpečení heslem úrovni, definovat heslo pro uživatele root, odstranění anonymních účtů, a vyjmutí testovací databází, které jsou, ve výchozím nastavení, přístupné pro všechny uživatele. Také, na rozdíl od SQLite, MySQL podporuje správu uživatelů a umožňuje vám udělit přístupová oprávnění na základě jednotlivých uživatelů.
  • Rychlost: výběrem implementovat některé funkce z SQL, MySQL vývojáři byli schopni upřednostnit rychlost. Zatímco novější benchmarkové testy ukazují, že jiné RDBMS, jako je PostgreSQL, se mohou shodovat nebo alespoň přiblížit MySQL z hlediska rychlosti, MySQL si stále drží pověst mimořádně rychlého databázového řešení.
  • Replikace: MySQL podporuje řadu různých typů replikace, což je praxe, sdílení informací mezi dvěma nebo více hostiteli, aby pomohla zlepšit spolehlivost, dostupnost, a fault-tolerance. To je užitečné pro nastavení řešení zálohování databáze nebo horizontálního škálování databáze.

nevýhody MySQL

  • známá omezení: Vzhledem k tomu, MySQL byl navržen pro rychlost a snadnost použití, spíše než plné dodržování SQL, přichází s určitými funkčními omezeními. Například postrádá podporu pro klauzule FULL JOIN.
  • Licencování a proprietární vlastnosti: MySQL je duální-licencovaný software, zdarma a open-source komunita vydání licencován pod licencí GPLv2 a několik placených komerčních edicích šířen pod proprietární licencí. Z tohoto důvodu jsou některé funkce a pluginy k dispozici pouze pro proprietární vydání.
  • zpomalil vývoj: Od MySQL projekt získal Sun Microsystems v roce 2008, a později Oracle Corporation v roce 2009, tam byly stížnosti od uživatelů, že proces vývoje DBMS má výrazně zpomalil, jako společenství již má agenturu, aby rychle reagovat na problémy a provádět změny.

Kdy Použít MySQL

  • Distribuované operace: MySQL replikace podpora je skvělou volbou pro distribuované databáze nastavení jako primární-sekundární nebo primární-primární architektury.
  • webové stránky a webové aplikace: MySQL pohání mnoho webových stránek a aplikací přes internet. To je z velké části díky tomu, jak snadné je instalace a nastavení databáze MySQL, stejně jako její celková rychlost a škálovatelnost v dlouhodobém horizontu.
  • očekávaný budoucí růst: podpora replikace MySQL může pomoci usnadnit horizontální škálování. Navíc je to relativně jednoduchý proces upgradu na komerční produkt MySQL, jako je MySQL Cluster, který podporuje automatické sharding, další horizontální proces škálování.

pokud nepoužíváte MySQL

  • je nutná shoda s SQL: Protože MySQL se nepokouší implementovat úplný standard SQL, tento nástroj není zcela kompatibilní s SQL. Pokud je úplná nebo dokonce téměř úplná shoda s SQL nutností pro váš případ použití, možná budete chtít použít plně kompatibilní DBMS.
  • souběžnost a velké objemy dat: ačkoli MySQL obecně funguje dobře při operacích náročných na čtení, souběžné čtení může být problematické. Pokud vaše aplikace nebude mít mnoho uživatelů zápisu dat na jednou, jiné RDBMS, jako je PostgreSQL může být lepší volba databáze.

PostgreSQL

PostgreSQL, také známý jako Postgres, účty sám jako „nejpokročilejší open-source relační databáze na světě.“Byl vytvořen s cílem být vysoce rozšiřitelný a vyhovující standardům. PostgreSQL je objektově-relační databáze, což znamená, že i když je to primárně relační databáze také zahrnuje funkce, jako je dědičnost tabulek a funkce přetížení—, které jsou často spojené s objektových databází.

Postgres je schopen efektivně zpracovat více úkolů najednou, což je charakteristika známá jako souběžnost. To dosahuje tím, že bez čtení zámky, díky jeho realizaci Multiversion Concurrency Control (MVCC), který zajišťuje atomicity, konzistence, izolace a trvanlivost jejích transakcí, také známý jako KYSELINA souladu.

PostgreSQL není tak široce používán jako MySQL, ale stále existuje řada nástrojů třetích stran, a knihovny navržen tak, aby zjednodušit práci s PostgreSQL včetně pgAdmin a Postbird.

podporované datové typy PostgreSQL

PostgreSQL podporuje číselné, řetězcové a datové a časové typy, jako je MySQL. Kromě toho podporuje datové typy pro geometrické tvary, síťové adresy, bitové řetězce, textové vyhledávání a položky JSON, stejně jako několik idiosynkratických datových typů.

Číselné typy:

Datový Typ Vysvětlení
bigint podepsané 8 byte integer.
bigserial An autoincrementing 8 byte integer.
double precision An 8 byte double precision floating-point number.
integer A signed 4 byte integer.
numeric or decimal An number of selectable precision, recommended for use in cases where exactness is crucial, such as monetary amounts.
real A 4 byte single precision floating-point number.
smallint A signed 2 byte integer.
smallserial An autoincrementing 2 byte integer.
serial An autoincrementing 4 byte integer.

Character types:

Data Type Explanation
character A character string with a specified fixed length.
character varying or varchar A character string with a variable but limited length.
text A character string of a variable, unlimited length.

Date and time types:

Data Type Explanation
date A calendar date consisting of the day, month, and year.
interval A time span.
time or time without time zone A time of day, not including the time zone.
time with time zone A time of day, including the time zone.
timestamp or timestamp without time zone A date and time, not including the time zone.
timestamp with time zone A date and time, including the time zone.

Geometric types:

Data Type Explanation
box A rectangular box on a plane.
circle A circle on a plane.
line An infinite line on a plane.
lseg A line segment on a plane.
path A geometric path on a plane.
point A geometric point on a plane.
polygon A closed geometric path on a plane.

Network address types:

Data Type Explanation
cidr An IPv4 or IPv6 network address.
inet An IPv4 or IPv6 host address.
macaddr A Media Access Control (MAC) address.

Bit string types:

Data Type Explanation
bit A fixed-length bit string.
bit varying A variable-length bit string.

Text search types:

Data Type Explanation
tsquery A text search query.
tsvector A text search document.

JSON types:

Data Type Explanation
json Textual JSON data.
jsonb Decomposed binary JSON data.

Other data types:

Data Type Explanation
boolean A logical Boolean, representing either true or false.
bytea Short for „byte array”, this type is used for binary data.
money An amount of currency.
pg_lsn A PostgreSQL Log Sequence Number.
txid_snapshot A user-level transaction ID snapshot.
uuid A universally unique identifier.
xml XML data.

Advantages of PostgreSQL

  • SQL compliance: More so than SQLite or MySQL, PostgreSQL aims to closely adhere to SQL standards. According to the official PostgreSQL documentation, PostgreSQL supports 160 out of the 179 features required for full core SQL:2011 compliance, kromě dlouhého seznamu volitelných funkcí.
  • Open-source a řízený komunitou: plně open-source projekt, zdrojový kód PostgreSQL je vyvíjen velkou a oddanou komunitou. Podobně, Postgres společenství udržuje a přispívá k mnoha online zdrojů, které popisují, jak pracovat s DBMS, včetně oficiální dokumentace, PostgreSQL wiki, a různé on-line fóra.
  • Extensible: uživatelé mohou rozšířit PostgreSQL programově a za běhu prostřednictvím jeho provozu řízeného katalogem a jeho použití dynamického načítání. Jeden může určit soubor objektového kódu, jako je sdílená knihovna, a PostgreSQL jej načte podle potřeby.

nevýhody PostgreSQL

  • výkon paměti: pro každé nové připojení klienta, PostgreSQL vidlice nový proces. Každému novému procesu je přiděleno asi 10 MB paměti, která se může rychle přidat do databází se spoustou připojení. V souladu s tím, pro jednoduché operace náročné na čtení, PostgreSQL je obvykle méně výkonný než jiné RDBMS, jako je MySQL.
  • Popularita: Ačkoli se v posledních letech používá více, PostgreSQL historicky zaostával za MySQL z hlediska popularity. Jedním z důsledků toho je, že stále existuje méně nástrojů třetích stran, které mohou pomoci spravovat databázi PostgreSQL. Podobně není tolik správců databází se zkušenostmi se správou databáze Postgres ve srovnání s těmi, kteří mají zkušenosti s MySQL.

kdy použít PostgreSQL

  • integrita dat je důležitá: PostgreSQL je plně ACID kompatibilní od roku 2001 a realizuje multiversion měnové kontroly, aby zajistily, že data zůstávají konzistentní, což je silný výběr RDBMS, kdy integrita dat je kritická.
  • integrace s dalšími nástroji: PostgreSQL je kompatibilní s širokou škálou programovacích jazyků a platforem. To znamená, že pokud budete někdy potřebovat migrovat databázi do jiného operačního systému nebo ji integrovat s konkrétním nástrojem, bude to pravděpodobně jednodušší s databází PostgreSQL než s jiným DBMS.
  • komplexní operace: Postgres podporuje plány dotazů, které mohou využívat více procesorů, aby mohly odpovídat na dotazy s větší rychlostí. Tento,spolu s jeho silnou podporou pro více souběžných spisovatelů, je skvělou volbou pro složité operace, jako je datové sklady a online zpracování transakcí.

pokud nepoužívat PostgreSQL

  • rychlost je nezbytná: na úkor rychlosti byl PostgreSQL navržen s ohledem na rozšiřitelnost a kompatibilitu. Pokud váš projekt vyžaduje co nejrychlejší čtení, PostgreSQL nemusí být nejlepší volbou DBMS.
  • jednoduché nastavení: Díky své velké sadě funkcí a silnému dodržování standardního SQL může být Postgres přehnaný pro jednoduché nastavení databáze. Pro operace náročné na čtení, kde je vyžadována rychlost, je MySQL obvykle praktičtější volbou.
  • Komplexní replikace: Přestože PostgreSQL poskytuje silnou podporu pro replikaci, je to stále relativně nová funkce a některých konfiguracích — jako primární-primární architektury — jsou možné jen s příponami. Replikace je vyspělejší funkce na MySQL a mnoho uživatelů vidí replikaci MySQL, aby bylo snazší implementovat, zejména pro ty, kteří nemají potřebné zkušenosti s databází a správou systému.

Závěr

Dnes, SQLite, MySQL a PostgreSQL jsou tři nejpopulárnější open-source relační databáze systémů řízení na světě. Každý má své vlastní jedinečné vlastnosti a omezení, a vyniká v konkrétních scénářích. Při rozhodování o RDBMS je ve hře poměrně málo proměnných, a volba je zřídka tak jednoduchá jako výběr nejrychlejšího nebo nejrychlejšího s nejvíce funkcemi. Až budete příště potřebovat řešení relační databáze, nezapomeňte tyto a další nástroje podrobně prozkoumat a najít ten, který nejlépe vyhovuje vašim potřebám.

Pokud byste se chtěli dozvědět více o SQL a jak ji použít pro správu relační databáze, doporučujeme vám se obrátit na naše, Jak Spravovat SQL Databáze tahák. Na druhou stranu, pokud se chcete dozvědět o nerelačních (nebo NoSQL) databázích, podívejte se na naše Srovnání systémů správy databází NoSQL.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.