Сведения о вопросе

Gaukhar

08:39, 10th August, 2020

Теги

mysql   postgresql    

MySQL vs PostgreSQL для веб-приложений

Просмотров: 515   Ответов: 11

Я работаю над веб-приложением, использующим Python (Django), и хотел бы знать, будет ли MySQL или PostgreSQL более подходящими при развертывании для производства.

В одном из подкастов Джоэл сказал, что у него были некоторые проблемы с MySQL, и данные не были согласованы.

Я хотел бы знать, были ли у кого-то такие проблемы. Кроме того, когда речь заходит о производительности, которую можно легко настроить?



  Сведения об ответе

padenie

17:38, 18th August, 2020

Примечание для будущих читателей: приведенный ниже текст в последний раз редактировался в августе 2008 года. Это было почти 5 лет назад по состоянию на эту редакцию. Программное обеспечение может быстро меняться от версии к версии, поэтому, прежде чем вы выберете DBMS, основываясь на приведенном ниже Совете, проведите небольшое исследование, чтобы убедиться, что он все еще точен.


- Лучше?

MySQL гораздо чаще предоставляется веб-хостами.

PostgreSQL-это гораздо более зрелый продукт.

Вот эта дискуссия касается вашего вопроса "better"

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

Итак, если ваш фактор принятия решения - " что быстрее? - Тогда ответ таков: "это зависит от обстоятельств. Если это действительно важно, протестируйте свое приложение против обоих. "И если вам действительно не все равно, вы получаете два DBAs (один из которых специализируется на каждой базе данных) и заставляете их настраивать дерьмо из баз данных, а затем выбираете. Поразительно, как дорого стоят хорошие DBAs; и они стоят каждого цента .

Когда это имеет значение.

Что, вероятно, не так, поэтому просто выберите ту базу данных, которая вам нравится, и идите с ней; лучшую производительность можно купить с большим количеством RAM и CPU, и более подходящим дизайном базы данных, и умными трюками с хранимыми процедурами и так далее - и все это дешевле и проще для random-website-X, чем мучительно выбирать, MySQL или PostgreSQL, и Специализированная настройка от дорогого DBAs.


Джоэл также сказал в этом подкасте, что комментарий вернется, чтобы укусить его, потому что люди будут говорить, что MySQL был куском дерьма - Джоэл не мог получить count строк назад. Множественное число анекдота-это не данные. Он сказал: :

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

и еще он сказал::

Это просто анекдот. И это одна из тех вещей, которые расстраивают меня, на самом деле, в отношении блогов или просто Интернета в целом. [...] Есть просто странная тенденция превращать анекдоты в правду, и я на самом деле как блогер начинаю чувствовать себя немного виноватым из-за этого


  Сведения об ответе

SKY

21:47, 4th August, 2020

Некоторые говорят, что MySQL-это просто и быстро.

Fast-Ну, если вы используете механизм хранения по умолчанию MyIsam, это быстро. Он имеет почти нулевую серьезную функцию базы данных, но это быстро. Если бы я был саркастичен, я бы сказал, что grep на плоском файле тоже быстро. Забавно, что это не так уж далеко от того, как MyIsam хранит данные. Так что не ожидайте, что там будет какая-то функция реляционной базы данных. Нет даже ограничений целостности ссылок.

Просто-теперь предположим, что вы хотите получить справедливое подмножество реальных функций базы данных. Может быть, какие-то ограничения целостности, триггеры, изоляция транзакций, функциональные индексы? Поэтому очевидно, что вы должны отпустить MyIsam двигатель и выбрать один из основных 3 других двигателей хранения. Которые были разработаны различными поставщиками, каждый из которых имеет определенный configuration/behaviour.

Ознакомьтесь с обзором систем хранения данных, и если у вас не будет головной боли, я соглашусь, что MySql-это просто с вашей точки зрения.

Исходя из этих фактов, я позволю вам составить свое мнение о тех, кто говорит, что MySql-это быстро и просто.

Если вы хотите масштабировать больше, экономить время, иметь меньше странных ошибок для охоты, иметь более простой код приложения, тратить больше времени на оптимизацию вашего бизнеса, а не на борьбу с вашей базой данных, то решение с открытым исходным кодом-это Postgresql.


  Сведения об ответе

SEEYOU

15:49, 19th August, 2020

Просто перезвонит много месяцев спустя.

Географические возможности этих двух баз данных весьма и весьма различны. PostgreSQL имеет исключительное расширение PostGIS. Географические возможности MySQL практически равны нулю по сравнению с ними.

Если ваш веб-сервис имеет компонент location, выберите PostgreSQL.


  Сведения об ответе

PAGE

20:41, 7th August, 2020

Я не использовал Django, но я использовал и MySQL и PostgreSQL. Если вы будете использовать свою базу данных только в качестве бэк-энда для Django, это не имеет большого значения, потому что она будет абстрагироваться от большинства различий. PostgreSQL немного более масштабируема (она не ударяется о кирпичную стену так быстро, как MySQL, когда увеличивается размер данных / количество клиентов).

Реальная разница возникает, если вы делаете новую систему. Тогда я бы рекомендовал PostgreSQL hands down, потому что он имеет гораздо больше функций, которые делают ваш слой DB гораздо более настраиваемым, так что вы можете настроить его под любые требования, которые у вас могут быть.


  Сведения об ответе

SEEYOU

01:17, 27th August, 2020

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

  • Лицензирование-собираетесь ли вы распространять свое приложение (IANAL)
  • Существующая инфраструктура и база знаний
  • Любой специальный соус , который вы должны иметь.

По особому соусу мне такие вещи нравятся:

  • легкая / дешевая репликация = MySQL
  • Огромные проблемы с набором данных с небольшими результатами = PostgreSQL. Используйте расширения языка и выполняйте очень эффективные операции с данными. (PL/Python, PL/TCL, PL/Perl, и т. д)
  • Интерфейс с R статистическими библиотеками = PostgreSQL PL/R доступен в debian/ubuntu


  Сведения об ответе

ЯЯ__4

08:06, 8th August, 2020

Хотя это немного устарело, было бы полезно прочитать страницу MySQL Gotchas . Многие из перечисленных там пунктов все еще верны, насколько мне известно.

Я использую PostgreSQL.


  Сведения об ответе

screen

18:45, 6th August, 2020

Ну, я не думаю, что вы должны использовать другой бренд базы данных в какой-либо прошлой разработке (сборка, постановка, прод), поскольку это вернется, чтобы укусить вас.

Насколько я понимаю, PostgreSQL-это более 'correct' реализация базы данных, а mySQl-менее корректная (менее совместимая), но более быстрая.

Так что если вы в значительной степени пишете приложение CRUD mySQL-это правильный путь. Если Вам требуются определенные функции из вашей базы данных (если вы не уверены, то нет), то вы можете посмотреть в postgreSQL.


  Сведения об ответе

fo_I_K

11:58, 8th August, 2020

Если вы пишете приложение, которое может быть распространено совсем немного на разных серверах, MySQL имеет большой вес по сравнению с PostgreSQL из-за переносимости. PostgreSQL трудно найти на менее чем удовлетворительных веб-хостах, albet есть несколько. В большинстве случаев PostgreSQL работает медленнее, чем MySQL, особенно когда речь заходит о тонкой настройке в конце. В общем, я бы сказал, что нужно дать PostgreSQL шанс на короткое время, чтобы вы не полностью избегали его, а затем принять решение.


  Сведения об ответе

SKY

16:37, 9th August, 2020

Спасибо. Я использовал Django с MySQL, и это нормально. Выберите свою базу данных по нужным вам функциям. Трудно сравнивать MySQL и Postgres. Лучше сравнить Postgress с сервером SQl.


  Сведения об ответе

VERSUION

11:20, 10th August, 2020

@WolfmanDragon

PostgreSQL имеет (крошечную) поддержку объектов, но по своей природе является реляционной базой данных. Со своей страницы о компании :

PostgreSQL-это мощная система реляционных баз данных с открытым исходным кодом.


  Сведения об ответе

LAST

11:12, 17th August, 2020

MySQL - это реляционная система управления базами данных, а PostgreSQL-объектно -реляционная система управления базами


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться