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