В чем основные отличия mySQL от Postgre?

Собираюсь переходить с мускула на постгре, но пока не особо понимаю, что даст эта база, в отличии от MySQL. В контексте nosql баз данных например вижу преимущества в быстродействии, например, причем на порядок.

А тут в чем основная разница? В чем основные преимущества постгре, перед mysql, к примеру, если у меня крупный онлайн магазин.
  • Вопрос задан
  • 4047 просмотров
Пригласить эксперта
Ответы на вопрос 8
alekciy
@alekciy
Вёбных дел мастер
Использую обе РСУБД. Предпочитаю Postgresql, хотя конечно начинал с MySQL. Из того, что на практике приводит к такому предпочтению:
1) Отсутствие проблем на по сути пустом месте. Из последнего было, в одной базе есть таблицы с большим количеством текстовых полей. При вставке в одно из них чуть меньше 200 символов он отказывался ссылаясь на то, что переводите на динамические. И я значит должен начать курить тему движков мускула и выяснять, что мне оказывается нужна Barracuda. При той же InnoDb. Хочется спросить такого черта.
Или вот еще вспомнил. При попытке записи в поле данных, больше чем это возможно для данной колонки он делает запись тупо обрезав лишнее. И проблему могут не заметить очень долго вплоть до момента когда подниматься из бэкапа поздно, там все уже битое.
Или вот взять и сменить могут дефолтные значение переменных в рамках минорной версии. База после накатки апдейтов и ребута может просто не подняться. На хабре даже была статься по этому поводу.
В общем множество подобных ситуаций после которых так и хочется воскликнуть "какого черта?!". Со слоном я не помню ни одной такой ситуации.
2) RETURN во вставках/обновлениях. Можно получить в ответе любое поле такого запроса. И ни каких тебе танцев с LastInsertId.
3) В последних версиях есть UPSERT которого очень не хватало.
4) В целом более строгий подход и нет ощущение бардака.
5) После запуска Postgres Pro появилась полностью руссифицированная документация. Помогает вкатиться в тему новичкам.

Из минусов некоторое время было отсутствие адекватного UI клиента. Но после того, как стал использовать PhpStorm эта проблема была закрыта.
Ответ написан
leahch
@leahch
Я мастер на все руки, я козлик Элек Мэк :-)
Алгоритмом работы (lock-based/ versioning), транзакциями, хранимыми процедурами, возможностями sql. Это по крупному, в мелочах - еще больше. Собственно, эти базы данных настолько разные, что сравнивать их напрямую нельзя. Каждая хороша для своего класса задач, хотя для магазина/cms обе будут примерно одинаковы.
Ответ написан
Samouvazhektra
@Samouvazhektra
Отчаянная домохозяйка
postgres - массивы, отдельное управление последовательностями (в mysql только одно инкрементное поле на таблицу, в postgres на таблицу можно несколько последовательностей, и одну на несколько таблиц. причем с настраиваемым шагом), оконные фукнции для подсчета статистики https://habrahabr.ru/post/268983/
лёгкое создание полнотекстового поиска без доп. движков типа sphinx и elasticsearch, которого вполне хватает для многих кейсов https://eax.me/postgresql-full-text-search/ , materialized view, наследование таблиц.
Вот более полная таблица фич
https://www.postgresql.org/about/featurematrix/
Но штука в том, что фичи далеко не всегда и везде нужны, поэтому mysql хватает с головой для многих задач
Ответ написан
@Fixid
Две не самые свежие, но хорошие статьи
1
2
Ответ написан
batyrmastyr
@batyrmastyr
Из простых преимуществ постгреса - многие запросы в нём отрабатывают шустрее, можно весьма гибко прописать ограничения на данные (если в поле "а" что-то есть, то в поле "б" может быть только "с"), даже крупному магазину может хватить настроек по-умолчанию при которых база довольствуется смешным объёмом памяти.

Из недостатков по сравнению с Mysql - нет множеств (заменяется массивом перечислений), большая строгость работы (число или перечисление нельзя взять и сравнить со строкой "5 = '5'", нужно привести их к одному типу "5 = '5'::int" или " 5::text = '5'5 ", а ваша обёртка над базой может быть не готова к такому).

В контексте nosql баз данных например вижу преимущества в быстродействии, например, причем на порядок.

Увы, это преимущество скорее всего окажется мифом - сейчас как раз потихоньку выпиливаем MongoDB.
Если говорить про MongoDB, то в моих задачах он работал либо не быстрее мускуля или постгреса при поиске, либо в разы (в 2 - 50 раз) медленнее при записи. При этом Монга жрала 1,5 гига памяти, мускуль - 300 Мб, а постгрес - меньше 15 Мб (да, меньше жалких пятнадцати мегабайт).
Ответ написан
sim3x
@sim3x
мускул (и все его производные - мария и перкона) не субд - а обертка для движков
постгрес - обьектно-ориентированная субд

Для владельца магазина - разницы никакой
Если ваш разработчик хочет переходить на постгрес и он ее умеет настраивать - пусть переходит
Ответ написан
machetero
@machetero
gotlib.info
https://habrahabr.ru/company/southbridge/blog/322624/ там написано почему InnoDB лучше чем postgres
Ответ написан
pasha_golub
@pasha_golub
Вопрос очень расплывчатый. Необходимо уточнение.

Вот, к примеру, табличка:
www.postgresqltutorial.com/postgresql-vs-mysql

А вот по каждому пункту детальная статья. Сравнивается не только мускуль, но и мсскл, оракл и дб2
modern-sql.com
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
от 130 000 до 180 000 руб.
Badoo Development Москва
от 180 000 до 250 000 руб.