Почему сообщество django поощряет использование Postgres вместо Mysql? - PullRequest
2 голосов
/ 15 ноября 2011

Сообщество Django, кажется, поощряет использование Postgres, я понимаю, что в большом проекте вы, вероятно, не хотите использовать SQLite или что-то подобное, но я не знаю, почему им не нравится Mysql так сильно.

только краткий пример - страница Djangobook 9:

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

Имя Postgres всегда связано с Django - точно так же, как Mysql всегда связан с php

Ответы [ 3 ]

1 голос
/ 15 ноября 2011

На этот вопрос может быть дан лучший ответ от тех, кто пишет Framework ...

Но из документации можно получить:

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

У Django строгий контроль транссекции, и использование мощной СУБД free, которая имеет строгий контроль разреза, является плюсом ...

Кроме того, в предыдущих версиях Mysql (до mysql 5.0) MySql имел некоторые проблемы с целостностью. Кроме того, fast механизм хранения MySql MyISAM не поддерживает внешние ключи и разрезы. Так что использование MyISAM имеет важные минусы, что его плюсы ...

И вики для , почему Postgres лучше, чем Mysql . Это довольно старое, но это хорошо.

0 голосов
/ 15 ноября 2011

Я всегда использовал Postgres, когда это было возможно, отчасти из-за зрелости и из-за расширений PostGIS, которые добавляют пространственные данные в базу данных.Даже если я не думаю, что вначале мне понадобятся пространственные данные в моем приложении, гораздо проще добавить их, если ваша БД их поддерживает, чем вырывать MySQL на более позднем этапе и заменять его PostGIS.

Я думаю, что теперь MySQL имеет пространственное расширение, так что вы можете выполнять пространственные операции в этом сейчас.Но Postgres просто делает это и делает это годами.

Или я мог бы потратить $$$$$ на Oracle Spatial, я полагаю ...

0 голосов
/ 15 ноября 2011

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

https://docs.djangoproject.com/en/dev/topics/db/transactions/#transactions-in-mysql

Может быть, разработчикам Django просто надоелоиметь дело с сообщениями об ошибках, в которых транзакции не работали, но проблема была в MyISAM, а не в Django.

Южные разработчики (наиболее используемая среда миграции схем базы данных для Django), очевидно, не любят MySQLлибо, что это сообщение предполагает, что я видел довольно часто с MySQL:

! Since you have a database that does not support running
! schema-altering statements in transactions, we have had to
! leave it in an interim state between migrations.
[...]
! The South developers regret this has happened, and would
! like to gently persuade you to consider a slightly
! easier-to-deal-with DBMS.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...