Для новичка, есть ли большая разница между MySQL и PostgreSQL - PullRequest
30 голосов
/ 30 октября 2010

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

Ответы [ 6 ]

45 голосов
/ 30 октября 2010

Причина, по которой я обычно предлагаю PostgreSQL до MySQL, заключается в том, что MySQL далек от стандартов (в отношении SQL).Он не поддерживает использование оконных функций (версия 8.4), общих табличных выражений (8.4), ограничений CHECK , оператора EXCEPT / MINUS, даже FULL OUTER JOINs ... Даже если вы никогда не слышалиэти слова, вам придется использовать эти понятия в какой-то момент.

Я настоятельно рекомендую вам начать с PostgreSQL, тогда вы сможете узнать, что такое «настоящий» SQL.Затем вы можете решить, достаточно ли MySQL.

PS Я начал с MySQL и пожалел об этом.Сейчас я использую PostgreSQL, и мне это нравится.

22 голосов
/ 02 ноября 2010

В пользу PostgreSQL уже было много замечательных моментов, но я собираюсь добавить еще 1:

PostgreSQL имеет лучшую документацию любого продукта баз данных, с которым я работал.

Вот почему документация выделяется:

  • На самом деле он учит вас основам SQL
  • Это легко понять
  • У него есть хорошие примеры
  • Это очень хорошо организовано
  • Это не просто список функций с техническими заметками
  • Все вокруг хорошо написано

Другие продавцы должны стыдиться того, что они пытаются, и выдавать себя за документацию.

7 голосов
/ 30 октября 2010

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

Когда вы изучите основы, вы определенно захотите воспользоваться поддержкой PostgreSQL оконных функций , начиная с версии 8.4

Я бы порекомендовал PostgreSQL поверх MySQL только для оконных функций. Обратите внимание, что в MySQL есть способы эмулировать оконные функции.

5 голосов
/ 02 ноября 2010

Вы часто слышите, как энтузиасты PostgreSQL утверждают, что это «настоящая» СУБД, а MySQL - нет. Этот вид снобизма опасен для новичков, потому что он приходит после многих лет опыта, который определенным образом натирает определенный тип личности. Если вы хотите подойти к этому вопросу с точки зрения того, какие знания принесут наибольшую пользу новичку - вы гораздо чаще будете находить людей, использующих MySQL, в дикой природе, чем PostgreSQL. Большие сайты, построенные на программном обеспечении с открытым исходным кодом, с большим отрывом выбирают MySQL вместо PostgreSQL.

Лично мне нравится MySQL, потому что он соответствует моему стилю разработки - он просто выполняет свою работу. Я не использую внешние ключи. Я определенно не использую хранимые процедуры. Но то, что делает MySQL, работает хорошо и работает быстро, и делает это, в то же время давая мне счастливое чувство «хорошо, это имеет смысл», которое я не получаю с PostgreSQL (я широко использовал оба). Есть хорошая поддержка сообщества MySQL и отличная документация. И если вам нужно выполнить репликацию (а кому нет?), То MySQL - явный победитель, без вопросов.

Есть некоторые вещи, которые MySQL позволяет вам сделать, которые могут привести к вредным привычкам, если вы переключитесь на менее прощающие базы данных. Но в этом-то и дело - все эти разговоры о том, как вы должны быть готовы перейти от RDBMS X к RDBMS Y в любой момент. По моему опыту, это случается редко, и когда это происходит, всегда есть причудливые различия от одной базы данных к другой. MySQL отличается от PostgreSQL, который отличается от Oracle, который отличается от SQL Server, который отличается от sqlite и т. Д. И т. Д. Я использовал все перечисленные выше базы данных, но к которым я все время возвращаюсь, MySQL, который делает вещи наиболее легко и гибко, для меня.

Администраторы баз данных любят ставить MySQL так же, как поклонники языка программирования любят использовать PHP - и все же они выживают и процветают. Есть причины для этого - они просто работают, они просто делают вещи. Но в конце дня вы должны поиграть со всем этим и принять решение.

4 голосов
/ 02 ноября 2010

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

Вот некоторые вещи, с которыми люди сталкиваются в MySQL:

Между тем PostgreSQL делает именно то, что вы ожидаете, в большинстве ситуаций, и обычно имеет очень веские причины, когда он делает что-то неожиданное.

3 голосов
/ 30 октября 2010

PostgreSQL поддерживает более сложные запросы, лучше справляется со сложными запросами, но сложнее в управлении.

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

Они достаточно похожи, и я бы порекомендовал начать с MySQL, но также изучать PostgreSQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...