Postgres против MySQL: какой из них сложнее масштабировать?

8

По вашему опыту, какую базу данных труднее масштабировать? MySQL или Postgres? Я знаю, что MySQL имеет несколько встроенных функций масштабирования / кластеризации, но с Postgres нет ни одной, которая выходит из коробки. CMIIW.

РЕДАКТИРОВАТЬ :

Извините за путаницу, мой вопрос касается масштабирования (горизонтальное масштабирование), то есть кластеризации, шардинга и т. Д. Я знаю, что оба могут масштабироваться горизонтально, но какой из них легче реализовать?

Спасибо, что поделились.

Джошуа Партоги
источник

Ответы:

1

MySQL - НАИБОЛЕЕ более простой способ масштабирования, кластеризация и репликация являются как встроенными, так и простыми в управлении и реализации (даже для тех, кто на самом деле не имеет знаний о базах данных).

В настоящее время PostgreSQL поддерживает только базовую репликацию и ничего официального в отношении кластеризации (технически это возможно с помощью сторонних инструментов, но управлять им становится адом).

Я бы никогда не выбрал Postgresql, если планирую масштабироваться.

Редактировать: очень старый ответ с зерном соли, поскольку postgres и mysql сильно изменились с тех пор, как был дан ответ.

Kedare
источник
То есть Postgres хорош только для монолитной базы данных?
Джошуа Партоги
Они оба хороши в работе с базой данных на одном сервере, чтобы вы могли увидеть, какие специфические особенности MySQL или PostgreSQL вам нужны
Kedare
2
MySQL, конечно, намного проще, но проблема с MySQL заключается в том, что он не проверяет целостность данных. Кроме того, PostGreSQL полностью поддерживает кластеризацию и репликацию. См: wiki.postgresql.org/wiki/Clustering и wiki.postgresql.org/wiki/...
затруднительное
7
Несомненно, существует множество решений для масштабирования PostgreSQL, и многие из крупнейших сайтов и систем используют именно это. MySQL будет легче масштабировать, если вы уже знаете mysql , а postgresql будет легче масштабировать, если вы уже знаете postgresql . Если вы не знаете ни того, ни другого, они, вероятно, довольно равны, как и в том, насколько это сложно, и вы должны посмотреть на другие свойства баз данных, чтобы выбрать один.
Магнус Хагандер
Интересно, актуален ли этот ответ, на него был дан ответ почти 8 лет назад
CommonSenseCode
8

Хотя этот вопрос противоречит принципу «не задавайте субъективных или спорных вопросов» на сайте, я не могу удержаться, пытаясь ответить на него.

Это зависит.

Речь идет об одной конфигурации сервера, которая масштабируется до очень больших наборов данных?
Оба могут работать в этой ситуации в зависимости от набора данных, но ни один из них, вероятно, не будет работать очень хорошо без пользовательской конфигурации и правильного планирования. По моему опыту, работая с большими наборами данных с большим количеством записей, я обнаружил, что в Postgres меньше условий, которые вызывают блокировку, и общая производительность была выше.

Вы говорите о многосерверных конфигурациях, которые масштабируются до множества подчиненных для многих читателей?
Исторически MySQL считался лидером в этой области, поскольку в него была встроена асинхронная репликация. Это уже не тот случай, если вы не против использования новейшего программного обеспечения БД; Postgres теперь также имеет встроенную версию 9.0. Мой опыт с репликацией MySQL был более чем адекватным на данный момент.

Вы говорите о многосерверных конфигурациях, которые масштабируются до множества мастеров для многих авторов?
Это, безусловно, самый сложный способ масштабирования любого продукта, и много раз его можно избежать, используя отказоустойчивые серверы. Если вам действительно нужно масштабировать для обеспечения высокой доступности мастер-серверов, нельзя избежать дополнений / альтернативных установок. Для MySQL есть MySQL Cluster NDB, который имеет опцию с открытым исходным кодом или коммерческую версию . Для Postgres есть много дополнений, которые могут дать вам различные уровни HA и пула

В конечном итоге масштабирование базы данных обычно сводится к планированию проекта. Если ваше приложение разработано с учетом масштаба, то система БД, которая лучше всего подходит вашим разработчикам, часто является лучшим выбором.

Издание
источник
3

PostGre имеет больше возможностей и опций конфигурации.

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

В общем, MySQL, вероятно, все еще будет работать быстрее, с другой стороны, реальный вопрос в том, насколько вы цените целостность данных и какие функции вам нужны, и хотите ли вы зависеть от Oracle (теперь владеет MySQL)?

Кроме того, есть вопросы о лицензировании, например, действительно ли вы хотите купить лицензию MySQL только потому, что не хотите публиковать свое приложение под лицензией GPL?
С PostGreSQL это не проблема, что является очень большим плюсом.

затруднительное положение
источник