Holywar: MySQL vs PostgreSQL

Jun 08, 2023 15:20


Немного предыстории. Прародитель MySQL увидел свет ещё в 1979-м году. Назывался он "Unireg" и был написан на... бейсике. В 1996-м году был выпущен MySQL 1.0.  Postgres активно разрабатывался с 1986 по 1994 как работа для защиты учёной степени кандидата наук. Те, кто плотно работал с Oracle RDBMS отмечают эту разницу в почерке создателей: Oracle ( Read more... )

наброс, database, it

Leave a comment

Comments 21

mindfactor June 8 2023, 12:24:31 UTC
То есть даже сайту-визитке, созданном на какой-нибудь Джумле, вы полагаете, что непременно нужно разворачивать постгре ?

Reply

klink0v June 8 2023, 12:47:44 UTC

Сайту-визитке в принципе не нужна RDBMS. Хватит какого-нибудь Hugo.

Reply

mindfactor June 8 2023, 13:10:50 UTC
Окей, усложним задачу.

Есть сайт на битриксе, на котором есть развесистый каталог товаров, допустим, в 2 тысячи позиций, дерево глубиной до 6 уровня. Обновление позиций - 10% раз в 2 месяца

Но никакого личного кабинета пользователей, никакой оплаты, резервирования и заказа. Просто каталог.

Reply

klink0v June 8 2023, 13:29:20 UTC
Если вы ведёте мысль к тому, что якобы MySQL - это что-то маленькое, быстрое и лёгкое, а Postgres - большое, тяжелое и корявое, то это неправда.

Бинарник Postgres-а весит восемь (!) мегабайт, памяти при работе он отъедает в районе полутора (!) мегабайт, если смотреть по writeable/private. Shared - как настроите. По скорости даже на настройках "из коробки" он в разы уделывает MySQL: вот тесты. А если не полениться отключить synchronous_commit и понизить уровень wal_level, то Postgres вообще взовьётся ракетой.

Так что отвечая на ваш вопрос, не вижу препятствий использовать Postgres, если конечно битрикс умеет с ним работать.

Reply


mopexod June 8 2023, 15:05:09 UTC
По теме сказать нечего :)
Но что интересно - всю жизнь, так или иначе, работаю с базами данных, но никогда не MySQL и не PostgreSQL.
Всегда микрософтовский стек.

Reply

klink0v June 8 2023, 18:04:38 UTC

Этот ЖЖ читает ещё один господин, который тоже специализируется по MSSQL. Его коммент был выше.

Не знаю как в цивилизованном мире, а в России все дружно начали слезать с Oracle на Postgres по известным причинам. В том числе и такие крупные ребята как РЖД или один жёлтый банк.

Reply

mopexod June 8 2023, 18:54:55 UTC
Да, знаю. У меня знакомые в одной естественной монополии ещё в 2014 пытались, но тогда не вышло: саппорт Postgres их послал с их объёмами.
С тех пор, может, и удалось...

Reply


petropavel_nn June 8 2023, 17:58:01 UTC

Мне интересно, послушаю)

У нас прям легаси-легаси, и все кто пытался как-то перетащить на постгрес за последние лет десять надорвались. Так и делаем заплатки для странных случаев. Также недавно поглядел в OOM на "восьмерке" - там да, там прикручивали какие-то очередные оптимизации, которые нам например нафиг не нужны.

С другой стороны, репликация в MySQL используется для кучи всего помимо репликации. У нас например некоторые миграции без даунтайма навострились через неё делать, тимлид мой писал штуку которая в потоке репликации меняет sql-запросы на лету по некоторым правилам. Возможно, это решение проблем, которые в нормальной субд бы не возникли, но при репликации бит-в-бит такое кажется сложно.

Но тот же оракл (который хозяин mysql-я) с mysql-ем вольно обращается. Счас, например, между 5.x и 8.x несовместимая поддержка utf-8, и между 8.0.23 и раньше - тоже совместимость поломали.
В общем, ящик маленький, а тараканов в нём достаточно)

Reply

klink0v June 8 2023, 18:23:18 UTC

> все кто пытался как-то перетащить на постгрес за последние лет десять надорвались

Охотно верю. Не такая это простая затея. Даже с оракла переползти на Postgres довольно сложно, хотя они ну очень похожи по диалекту SQL и оба соответствуют стандарту ACID.

> недавно поглядел в OOM на "восьмерке"

У меня это обычное дело и в 5.6. Но в том программном продукте разработчик тоже "весьма нетрадиционным" способом использует СУБД. Переделывать по-нормальному, как водится, всем лень.

> при репликации бит-в-бит такое кажется сложно

В Postgres-е тоже есть логическая репликация начиная с 12-й что ли версии. Но её мало кто использует. Это такой обоюдоострый топор. Можно очень легко всё сломать не подумав. Не знаю что у вас за задачи, но так-то ещё бывают VIEW-шки и временные таблицы. Плюс, вполне можно делать ALTER TABLE и "на лету".

Если говорить про извращения, я видел у одного хостера репликацию двух биллинговых MySQL-ей в двух разных ЦОДах по SMTP протоколу. Сервера друг другу натурально писали письма. Давно это было, сейчас наверное уже они ( ... )

Reply

petropavel_nn June 8 2023, 20:06:42 UTC

О, репликация по SMTP это красиво!

За предложение спасибо, но я пока временно сменил локаль, я пока не тут)

Reply


kspshnik June 8 2023, 18:46:32 UTC

Я бы предложил плясать от задач и персонала :), то есть по сути от ТСО.

Reply


mopexod June 8 2023, 19:00:24 UTC
Кстати, тут же есть разработчик Postgres, если я не ошибаюсь - vitus_wagner.

Reply


Leave a comment

Up