Я знаю, вопрос звучит провокационно, но на самом деле это не так. В последнее время я нахожу ограничения MySQL во многих областях, и мне все больше нравится PostgreSQL. Он намного лучше масштабируется и больше уважает стандарты SQL, чем MySQL.
Я все еще новичок в мире PostgreSQL, и, поскольку я готов отойти от MySQL для всех своих будущих проектов, я хочу знать следующее: есть ли какая-то особенность MySQL, которая работает лучше (как в высокопроизводительный или более удобный для пользователей и т. д.), чем в PostgreSQL?
Мне интересно, что я собираюсь пропустить из MySQL. Я уже обнаружил, что поля AUTO_INCREMENT в MySQL более удобны, чем SEQUENCES в PostgreSQL, и развертывание в Windows было проблематичным в прошлом (больше не было проблемой. Для меня это никогда не было проблемой).
Что еще?
источник
Ответы:
Вы явно подходите к этому с точки зрения разработчика, поэтому вы можете найти более полезные ответы в SO.
С административной точки зрения:
- Репликация (HA)
- Репликация (Масштабирование *)
- Репликация (резервные копии)
- Поддержка приложений
- Размер и глубина сообщества (Документация, Поддержка)
- Существующая база установки / доступные задания
* Обратите внимание, что вы упомянули
postgres
масштабирование лучше. масштабирование означает что-то уникальное для всех, но, как правило, вещи, которые имеют путь к распределению нагрузки между несколькими серверами, масштабируются лучше, чем вещи, которые этого не делают.источник
COUNT (*) также намного медленнее с PSQL. Вы должны создавать триггеры для такого рода функций.
источник
Поскольку Postgres эффективно выполняет копирование при записи для каждого обновления (чтобы иметь возможность обрабатывать транзакции), если вам не нужны транзакции и выполняется много операций записи относительно операций чтения, MySQL не будет иметь издержек, которые PostgreS буду. (каждая обновленная запись должна писать больше, обновлять индексы и т. д.)
источник
Я могу вспомнить одну вещь, отсутствующую в PostgreSQL:
Я думаю, что было что-то также с блокировкой, вставкой или обновлением. Но я не могу вспомнить, что это было на самом деле. : S
источник
Поле auto_increment «удобно» не очень актуально, не так ли? Oracle имеет последовательности и, несомненно, является наиболее широко используемой коммерческой базой данных в мире.
Огромное количество информации, которую можно найти о том, как PostgreSQL будет более безопасным при сбое и так далее. Я просто собираюсь указать вам на эту страницу вики PostgreSQL (без сомнения, цветное мнение, но это то, что вы ищете в любом случае).
Многие люди упоминают на этой странице, что MySQL более дружелюбен к новичкам. Так? Объясните мне, как это важно в критически важной среде.
источник
MySQL часто называют grep с поддержкой SQL . Что касается меня (сейчас на момент написания статьи), то это выглядит почти как PHP - довольно неловко, но популярно.
Попробуйте переименовать базу данных для самого начала. ;) Затем добавить (пропустить) условные индексы.
PS Я могу указать, по крайней мере, одну неоспоримую полезную особенность, которую имеет MySQL - он поддерживает довольно компактные типы данных, такие как (беззнаковый) байт, например. Это может сэкономить много оперативной памяти и дискового пространства при использовании соответственно. Но, увы, есть еще несколько положительных моментов. И сравнение по ссылке, которую вы дали, действительно изящно.
источник
Функция auto_increment удобна до тех пор, пока вы не поймете, что они сосут для таблиц с чрезвычайно высоким параллелизмом вставки, после чего они становятся узким местом, и вы вынуждены реализовать последовательность, используя таблицу MyISAM.
В любом случае, чтобы ответить на ваш вопрос, самое большое, что MySQL сделал для этого, - это легко настроить репликацию, которая позволяет связывать репликацию и читать ведомые. Тем не менее, Postgres будет иметь это в следующем выпуске, 9.0 (который уже находится в альфа-статусе).
источник