PostgreSQL vs MySQL: jaka jest różnica?

Spisie treści:

Anonim

Co to jest MySQL?

MYSQL to popularny i szeroko stosowany system DBMS. Nazwa pochodzi od imienia dziewczynki My, która jest córką współzałożyciela Michaela Wideniusa. Kod źródłowy MYSQL jest dostępny na licencji GNU GPL. Projekt jest własnością firmy Oracle Corporation i jest przez nią utrzymywany.

Jest to RDBMS (Relational Database Management System) i działa głównie na modelu relacyjnej bazy danych. Dzięki temu administrowanie bazą danych jest łatwiejsze i bardziej elastyczne.

Co to jest PostgreSQL?

Postgre to obiektowo-relacyjny system zarządzania bazami danych (ORDBMS). Został opracowany na Wydziale Informatyki Uniwersytetu Kalifornijskiego. Postgres był pionierem w wielu koncepcjach.

Postgre to system relacyjnych baz danych klasy Enterprise. Jest łatwy w konfiguracji i instalacji. Oferuje obsługę SQL i NoSQL. Ma wspaniałą społeczność, która z przyjemnością Ci pomoże, gdy napotkasz problemy podczas korzystania z PostgreSQL.

W tym samouczku dowiesz się więcej o -

  • Historia MySQL
  • Historia PostgreSQL
  • Dlaczego warto korzystać z MySQL?
  • Dlaczego warto używać PostgreSQL?
  • Funkcje MySQL
  • Funkcje PostgreSQL
  • Kluczowe różnice między MySQL i PostgreSQL
  • Wady korzystania z MySQL
  • Wady korzystania z PostgreSQL
  • Co jest lepsze?

Historia MySQL

  • MySQL został stworzony przez szwedzką firmę MySQL AB 1995
  • Firma Sun nabyła MySQL AB za 1 miliard dolarów w 2008 roku
  • Oracle kupiło Sun w 2010 roku i tym samym przejmuje MySQL
  • W 2012 roku MySQL został podzielony na MariaDB przez założyciela Michaela Wideniusa w ramach firmy Monty Program Ab
  • MariaDB zastępuje MySQL w większości dystrybucji w roku 2013
  • Monty Program Ab połączył się z SkySQL-2013
  • SkySQL Ab przemianowany na MariaDB Corporation - 2014

Historia PostgreSQL

  • INGRES został opracowany w 1977 roku
  • Michael Stonebraker i jego koledzy opracowali Postgres-1986
  • Wsparcie dla prawdziwego ACID i PL / pgSQL - 1990
  • Wydany jako Postgres95 w -1995
  • Ponownie wydany Postgres95 jako PostgreSQL 6.0 - 1996
  • Dodano MVCC, GUC, sterowanie składnią sprzężenia i moduł ładujący język proceduralny - 1998-2001
  • Wersja 7.2 do 8.2: Zawiera funkcje, takie jak obsługa schematów, nieblokująca próżnia, role i dblink - 2002-2006
  • PostgreSQL 8.4 wydany w 2009 roku
  • PostgreSQL 9.0 wydany w 2010 roku
  • NYCPUG (Grupa użytkowników PostgreSQL w Nowym Jorku) dołącza do PgUS (stowarzyszenie PostgreSQL w Stanach Zjednoczonych) - 2013
  • PGconf zorganizowany w 2014 roku

KLUCZOWA RÓŻNICA:

  • PostgreSQL to obiektowo-relacyjny system zarządzania bazami danych (ORDBMS), podczas gdy MySQL to oparty na społeczności system DBMS.
  • PostgreSQL obsługuje funkcje nowoczesnych aplikacji, takie jak JSON, XML itp., Podczas gdy MySQL obsługuje tylko JSON.
  • PostgreSQL działa dobrze podczas wykonywania złożonych zapytań, podczas gdy MySQL działa dobrze w systemach OLAP i OLTP.
  • PostgreSQL jest w pełni zgodny z ACID, podczas gdy MySQL jest zgodny z ACID tylko wtedy, gdy jest używany z InnoDB i NDB.
  • PostgreSQL obsługuje widoki zmaterializowane, podczas gdy MySQL nie obsługuje widoków zmaterializowanych.

Dlaczego warto korzystać z MySQL?

Oto kilka ważnych powodów, dla których warto używać MYSQL:

  • Obsługuje funkcje takie jak replikacja master-slave, skalowanie w poziomie
  • Obsługuje raportowanie odciążania, dystrybucję danych geograficznych itp.
  • Bardzo niskie obciążenie dzięki silnikowi pamięci MyISAM, gdy jest używany w aplikacjach głównie do odczytu
  • Obsługa mechanizmu magazynowania pamięci dla często używanych tabel
  • Zapytaj pamięć podręczną o wielokrotnie używane instrukcje
  • Możesz łatwo uczyć się i rozwiązywać problemy z MySQL z różnych źródeł, takich jak blogi, oficjalne dokumenty i książki

Dlaczego warto używać PostgreSQL?

Główne powody używania PostgreSQL to:

  • Oferuje przydatne funkcje, takie jak partycjonowanie tabel, odzyskiwanie punktu w czasie, transakcyjny DDL itp.
  • Możliwość wykorzystania zewnętrznych magazynów kluczy w pełnej infrastrukturze PKI
  • Programiści mogą modyfikować kod open source, ponieważ jest on objęty licencją BSD, bez konieczności wnoszenia dodatkowych ulepszeń
  • Niezależni dostawcy oprogramowania mogą go rozpowszechniać bez obawy o „zainfekowanie” przez licencję typu open source
  • Użytkownikom i rolom można przypisać uprawnienia na poziomie obiektu
  • Obsługuje AES, 3DES i inne algorytmy szyfrowania danych.

Funkcje MySQL

  • MySQL to oparty na społeczności system DBMS
  • Kompatybilny z różnymi platformami przy użyciu wszystkich głównych języków i oprogramowania pośredniego
  • Oferuje obsługę kontroli współbieżności wielu wersji
  • Zgodny ze standardem ANSI SQL
  • Umożliwia replikację SSL opartą na dziennikach i wyzwalaczach
  • Zorientowany obiektowo i zgodny z ANSI-SQL2008
  • Wielowarstwowa konstrukcja z niezależnymi modułami
  • W pełni wielowątkowy, wykorzystujący wątki jądra
  • Serwer dostępny w modelu wbudowanej bazy danych lub klient-serwer
  • Oferuje wbudowane narzędzia do analizy zapytań i analizy przestrzeni
  • Może obsługiwać dowolną ilość danych, do 50 milionów wierszy lub więcej
  • MySQL działa w wielu odmianach UNIX, a także w innych systemach innych niż UNIX, takich jak Windows i OS / 2

Funkcje PostgreSQL

  • Aktywna społeczność, która przyspiesza swój rozwój
  • Najpopularniejsza alternatywa dla Oracle, DB2 i SQL Server
  • Działa na wszystkich głównych platformach systemu operacyjnego, które możesz mieć
  • MVCC obsługuje dużą liczbę jednoczesnych użytkowników
  • Rozbudowane indeksowanie w celu uzyskania wysokiej wydajności raportowania
  • Wsparcie dla nowoczesnych aplikacji (XML i JSON)
  • Obsługa języka ANSI SQL dla przenośnych umiejętności / kodu
  • Obsługa kluczy obcych dla efektywnego przechowywania danych
  • Połączenia tabel i widoki w celu elastycznego pobierania danych
  • Wyzwalacze / procedury składowane dla złożonych programów i transakcji
  • Replikacja w celu tworzenia kopii zapasowych danych i skalowalności odczytu

Różnice między MySQL i PostgreSQL

Parametr MYSQL PostgreSQL
Otwarte źródło Projekt MySQL udostępnił swój kod źródłowy na warunkach Powszechnej Licencji Publicznej GNU. PostgreSQL jest wydany na licencji PostgreSQL, która jest bezpłatną licencją Open Source. Jest to podobne do licencji BSD i MIT.
Zgodność z kwasami MySQL jest zgodny z ACID tylko wtedy, gdy jest używany z silnikami InnoDB i NDB Cluster Storage. PostgreSQL jest w pełni zgodny z ACID.
Zgodny z SQL MySQL jest częściowo zgodny z SQL. Na przykład nie obsługuje ograniczenia sprawdzającego. PostgreSQL jest w dużej mierze zgodny z SQL.
Społeczność Ma dużą społeczność współtwórców, którzy koncentrują się głównie na utrzymaniu istniejących funkcji, a nowe funkcje pojawiają się od czasu do czasu. Aktywna społeczność stale ulepsza istniejące funkcje, a jej innowacyjna społeczność stara się zapewnić, że pozostanie najbardziej zaawansowaną bazą danych. Regularnie publikowane są nowe, najnowocześniejsze funkcje i ulepszenia zabezpieczeń.
Wydajność Jest używany głównie w projektach internetowych, które wymagają bazy danych do prostych transakcji danych. Jest szeroko stosowany w dużych systemach, w których ważne są prędkości odczytu i zapisu
Najlepiej dopasowany MySQL działa dobrze w systemach OLAP i OLTP, gdy potrzebne są tylko prędkości odczytu. Dobra wydajność PostgreSQL podczas wykonywania złożonych zapytań.
Wsparcie dla JSON MySQL obsługuje typ danych JSON, ale nie obsługuje żadnej innej funkcji NoSQL. Obsługa formatu JSON i innych funkcji NoSQL, takich jak natywna obsługa XML. Umożliwia także indeksowanie danych JSON w celu szybszego dostępu.
Obsługa widoków zmaterializowanych Obsługuje zmaterializowane widoki i tabele tymczasowe. Obsługuje tabele tymczasowe, ale nie oferuje widoków zmaterializowanych.
Ekosystem MySQL ma dynamiczny ekosystem z wariantami, takimi jak MariaDB, Percona, Galera itp. Postgres miał ograniczone opcje high-end. Jednak to się zmienia wraz z nowymi funkcjami wprowadzonymi w najnowszej wersji.
Wartości domyślne Wartości domyślne można nadpisać na poziomie sesji i na poziomie instrukcji Wartości domyślne można zmienić tylko na poziomie systemu
Indeksy B-drzewa W razie potrzeby można użyć dwóch lub więcej indeksów B-drzewa. Indeksy B-drzewa łączone w czasie wykonywania w celu oceny są dynamicznie konwertowanymi predykatami.
Statystyki obiektów Dość dobre statystyki obiektów Bardzo dobre statystyki obiektów
Pytania dotyczące przepełnienia stosu 532K 89,3K
Połącz możliwości Ogranicz możliwości łączenia Dobre możliwości łączenia
Gwiazdy GitHub 3,34k 5,6 km
Widły 1,6 km 2,4 km
Wybitne firmy korzystające z produktu Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Wady korzystania z MySQL

  • Transakcje związane z katalogiem systemowym nie są zgodne z ACID
  • Czasami awaria serwera może uszkodzić katalog systemowy
  • Brak podłączanego modułu uwierzytelniania uniemożliwiającego centralne zarządzanie kontem
  • Brak wsparcia dla ról, więc utrzymanie uprawnień dla wielu użytkowników jest trudne
  • Procedury składowane nie mogą być buforowane
  • Tabele używane do procedury lub wyzwalacza są zawsze wstępnie zablokowane

Wady korzystania z PostgreSQL

  • Obecne rozwiązania zewnętrzne wymagają dużej krzywej uczenia się
  • Brak możliwości aktualizacji dla głównych wersji
  • Dane muszą zostać wyeksportowane lub zreplikowane do nowej wersji
  • Podczas procesu aktualizacji potrzebna jest podwójna pamięć
  • indeksów nie można używać do bezpośredniego zwracania wyników zapytania
  • Plany wykonania zapytań nie są buforowane
  • Operacje ładowania zbiorczego mogą zostać powiązane z procesorem
  • Wsparcie rzadkich niezależnych dostawców oprogramowania

Co jest lepsze?

Po porównaniu obu, możemy powiedzieć, że MySQL wykonał świetną robotę, poprawiając się, aby był odpowiedni, ale z drugiej strony dla PostgreSQL nie potrzebujesz żadnej licencji. Oferuje również dziedziczenie tabel, systemy reguł, niestandardowe typy danych i zdarzenia bazy danych. Z pewnością przewyższa więc MySQL.