PostgreSQL проти MySQL: в чому різниця?

Зміст:

Anonim

Що таке MySQL?

MYSQL - популярна та широко використовувана система СУБД. Ім'я взято від імені дівчинки My, яка є дочкою співзасновника Майкла Віденіуса. Вихідний код MYSQL доступний під GNU GPL. Проект належить і підтримується корпорацією Oracle.

Це СУБД (Реляційна система управління базами даних) і працює в основному над моделлю реляційних баз даних. Це робить адміністрування баз даних простішим та гнучкішим.

Що таке PostgreSQL?

Postgre - це об'єктно-реляційна система управління базами даних (ORDBMS). Він був розроблений на кафедрі комп’ютерних наук у Каліфорнійському університеті. Postgres започаткував багато концепцій.

Postgre - це реляційна система баз даних корпоративного класу. Це легко встановити та встановити. Він пропонує підтримку SQL та NoSQL. У ньому є чудова спільнота, яка із задоволенням допоможе вам, коли ви стикаєтесь із проблемами під час використання PostgreSQL.

У цьому уроці ви дізнаєтесь більше про -

  • Історія MySQL
  • Історія PostgreSQL
  • Навіщо використовувати MySQL?
  • Навіщо використовувати PostgreSQL?
  • Особливості MySQL
  • Особливості PostgreSQL
  • Основні відмінності між MySQL та PostgreSQL
  • Недоліки використання MySQL
  • Недоліки використання PostgreSQL
  • Що краще?

Історія MySQL

  • MySQL був створений шведською компанією під назвою MySQL AB 1995
  • Sun придбала MySQL AB за 1 мільярд доларів у 2008 році
  • Oracle придбав Sun у 2010 році і тим самим придбав MySQL
  • У 2012 році MySQL був розгалужений до MariaDB засновником Майклом Віденієм під керівництвом компанії Monty Program Ab
  • MariaDB замінює MySQL для більшості дистрибутивів у 2013 році
  • Monty Program Ab об’єднано з SkySQL-2013
  • SkySQL Ab перейменовано на MariaDB Corporation - 2014

Історія PostgreSQL

  • INGRES був розроблений-1977
  • Майкл Стоунбракер та його колеги розробили Postgres- 1986
  • Підтримка реальних кислот і PL / pgSQL - 1990
  • Випущений як Postgres95 у -1995 році
  • Повторно випустив Postgres95 як PostgreSQL 6.0 - 1996
  • MVCC, GUC, елементи керування синтаксисом об’єднання та додано процедурний завантажувач мови - 1998-2001
  • Версія 7.2 - 8.2: Включені функції, такі як підтримка схеми, неблокуючий VACUUM, Ролі та dblink - 2002-2006
  • PostgreSQL 8.4 випущений у 2009 році
  • PostgreSQL 9.0, випущений в 2010 році
  • NYCPUG (New York City PostgreSQL User Group) приєднується до PgUS (Асоціація PostgreSQL США) - 2013
  • PGconf організовано-2014

КЛЮЧОВА РІЗНИЦЯ:

  • PostgreSQL - це об'єктна реляційна система управління базами даних (ORDBMS), тоді як MySQL - це система СУБД, керована спільнотою.
  • PostgreSQL підтримує такі сучасні програми, як JSON, XML тощо, тоді як MySQL підтримує лише JSON.
  • Ефективність PostgreSQL при виконанні складних запитів, тоді як MySQL добре працює в системах OLAP і OLTP.
  • PostgreSQL повністю сумісний з ACID, тоді як MySQL відповідає ACID лише при використанні з InnoDB та NDB.
  • PostgreSQL підтримує матеріалізовані подання, тоді як MySQL не підтримує матеріалізовані подання.

Навіщо використовувати MySQL?

Ось кілька важливих причин використання MYSQL:

  • Підтримує такі функції, як реплікація Master-Slave, масштабування
  • Він підтримує звітування про розвантаження, розподіл географічних даних тощо.
  • Дуже низькі накладні витрати за допомогою механізму зберігання даних MyISAM, коли вони використовуються в основному для читання
  • Підтримка механізму зберігання пам'яті для часто використовуваних таблиць
  • Кеш запитів для багаторазово використовуваних операторів
  • Ви можете легко вивчити та усунути неполадки MySQL з різних джерел, таких як блоги, технічні документи та книги

Навіщо використовувати PostgreSQL?

Основними причинами використання PostgreSQL є:

  • Пропонує корисні функції, такі як розділення таблиці, відновлення точки в часі, транзакційний DDL тощо.
  • Можливість використовувати сторонні магазини ключів у повній інфраструктурі PKI
  • Розробники можуть змінювати відкритий вихідний код, оскільки він ліцензований під BSD, без необхідності додавати вдосконалення
  • Незалежні постачальники програмного забезпечення можуть розповсюджувати його, не боячись бути «зараженими» ліцензією з відкритим кодом
  • Користувачам і Ролям можуть бути призначені привілеї на рівні об'єкта
  • Підтримує AES, 3DES та інші алгоритми шифрування даних.

Особливості MySQL

  • MySQL - це система СУБД, керована спільнотою
  • Сумісний з різними платформами, що використовують усі основні мови та проміжне програмне забезпечення
  • Він пропонує підтримку управління кількома версіями одночасності
  • Відповідає стандарту ANSI SQL
  • Дозволяє SSL реплікації на основі журналу та тригера
  • Об'єктно-орієнтована та сумісна з ANSI-SQL2008
  • Багатошаровий дизайн з незалежними модулями
  • Повністю багатопотоковий, використовуючи ядра потоків
  • Сервер доступний у вбудованій БД або клієнтській моделі сервера
  • Пропонує вбудовані інструменти для аналізу запитів та аналізу простору
  • Він може обробляти будь-яку кількість даних, до 50 мільйонів рядків або більше
  • MySQL працює на багатьох різновидах UNIX, а також на інших системах, що не є UNIX, таких як Windows та OS / 2

Особливості PostgreSQL

  • Активна спільнота, яка прискорює свій розвиток
  • Найпоширеніша альтернатива Oracle, DB2 та SQL Server
  • Працює на всіх основних платформах ОС, які у вас є
  • MVCC підтримує велику кількість одночасних користувачів
  • Широка індексація для високопродуктивних звітів
  • Підтримка сучасних додатків (XML та JSON)
  • Підтримка ANSI SQL для переносних навичок / коду
  • Підтримка зовнішніх ключів для ефективного зберігання даних
  • З’єднання таблиць та подання для гнучкого пошуку даних
  • Тригери / збережені процедури для складних програм та транзакцій
  • Реплікація для резервного копіювання даних та масштабованості читання

Відмінності між MySQL та PostgreSQL

Параметр MYSQL PostgreSQL
Відкрите джерело Проект MySQL зробив доступним свій вихідний код на умовах Загальної публічної ліцензії GNU. PostgreSQL випускається під ліцензією PostgreSQL, яка є безкоштовною ліцензією з відкритим кодом. Це схоже на ліцензії BSD & MIT.
Відповідність кислоти MySQL відповідає ACID лише тоді, коли він використовується з движками кластерного зберігання InnoDB та NDB. PostgreSQL повністю сумісний з кислотою.
Сумісний з SQL MySQL частково сумісний з SQL. Наприклад, він не підтримує обмеження перевірки. PostgreSQL в основному сумісний з SQL.
Підтримка громади У ньому є велика спільнота авторів, які зосереджуються головним чином на підтримці існуючих функцій, а нові функції з’являються зрідка. Активне співтовариство постійно вдосконалює існуючі функції, тоді як його інноваційне співтовариство прагне забезпечити, щоб воно залишалося найдосконалішою базою даних. Регулярно виходять нові передові функції та покращення безпеки.
Продуктивність Здебільшого він використовується для веб-проектів, яким потрібна база даних для прямих транзакцій даних. Він широко використовується у великих системах, де важлива швидкість читання та запису
Найкраще підходить MySQL добре працює в системах OLAP і OLTP, коли потрібні лише швидкості читання. Ефективність PostgreSQL при виконанні складних запитів.
Підтримка JSON MySQL має підтримку типу даних JSON, але не підтримує жодної іншої функції NoSQL. Підтримка JSON та інших функцій NoSQL, таких як підтримка власного XML. Це також дозволяє індексувати дані JSON для швидшого доступу.
Підтримка матеріалізованих поглядів Підтримує матеріалізовані подання та тимчасові таблиці. Підтримує тимчасові таблиці, але не пропонує матеріалізованих подань.
Екосистема MySQL має динамічну екосистему з такими варіантами, як MariaDB, Percona, Galera тощо. Postgres має обмежені можливості високого класу. Однак це змінюється з новими функціями, представленими в останній версії.
Значення за замовчуванням Значення за замовчуванням можуть бути замінені на рівні сесії та на рівні виписки Значення за замовчуванням можна змінювати лише на системному рівні
Індекси B-дерева Два або більше індексів B-дерева можна використовувати, коли це доречно. Індекси B-дерева, об'єднані під час виконання для оцінки, є динамічно перетвореними предикатами.
Статистика об’єктів Досить хороша статистика об'єктів Дуже хороша статистика об’єктів
Питання переповнення стека 532 тис 89,3 тис
Приєднуйтесь до можливостей Обмежте можливості приєднання Хороші можливості приєднання
Зірки GitHub 3,34 тис 5,6 тис
Вилки 1,6 тис 2,4 тис
Видатні компанії, що використовують продукт Airbnb, Uber, Twitter Netflix, Instagram, Groupon

Недоліки використання MySQL

  • Транзакції, пов’язані із системним каталогом, не відповідають ACID
  • Деякий час збій сервера може пошкодити системний каталог
  • Немає підключається модуля автентифікації, що заважає централізованому керуванню обліковим записом
  • Немає підтримки ролей, тому важко підтримувати привілеї для багатьох користувачів
  • Збережені процедури не можна кешувати
  • Таблиці, що використовуються для процедури або тригера, завжди попередньо блокуються

Недоліки використання PostgreSQL

  • Сучасні зовнішні рішення вимагають високого рівня навчання
  • Немає можливості оновлення для основних випусків
  • Дані потрібно експортувати або відтворити в новій версії
  • У процесі оновлення потрібне подвійне сховище
  • індекси не можуть використовуватися для безпосереднього повернення результатів запиту
  • Плани виконання запитів не кешуються
  • Операції масового завантаження можуть зв’язати процесор
  • Підтримка розрідженого незалежного постачальника програмного забезпечення

Що краще?

Порівнявши обидва, ми можемо сказати, що MySQL зробив велику роботу, покращивши себе, щоб зберегти актуальність, але з іншого боку для PostgreSQL вам не потрібно ніяких ліцензій. Він також пропонує успадкування таблиць, системи правил, власні типи даних та події бази даних. Отже, це, звичайно, перевищує MySQL.