Выбор базы данных для проекта Django - PullRequest
1 голос
/ 23 января 2011

Django (http://djangoproject.com) Framework в настоящее время поддерживает следующие базы данных: PostgreSQL, SQLite 3, MySQL 5 и Oracle. Этот вопрос не касается сравнения этих баз данных, напротив, я хочу узнать подробности об их совместимости с Django и как выбрать подходящую базу данных для простого (но растущего) проекта.

Ответы [ 3 ]

5 голосов
/ 23 января 2011

Это зависит. Если вы не хотите платить (огромную) премию за Oracle, вы выбираете между MySQL и PostgreSQL (SQLite в основном предназначен для разработки, а не для производства). PostgreSQL, похоже, является выбором большинства разработчиков ядра Django (Эндрю Годвин зашел так далеко, что включил «друзья не позволяют друзьям использовать MySQL» в доклад DjangoCon ). Тем не менее, MySQL полностью поддерживается Django и используется многими веб-сайтами Django в производстве.

ИМХО, PostgreSQL имеет два явных преимущества перед MySQL:

  • Если вы используете GeoDjango . Там действительно нет альтернативы PostGIS . Поддержка ГИС в MySQL в лучшем случае слаба.
  • Южная . MySQL не может использовать транзакции во время миграций схемы, что означает, что если миграция на юг идет неправильно, вы зависаете между двумя миграциями без четкого пути вперед или назад. В таких ситуациях PostgreSQL избавляет от боли.
2 голосов
/ 23 января 2011

Быстрый ответ: это на самом деле не имеет значения, но если бы мне пришлось выбирать один из них, это, вероятно, был бы PostgreSQL.

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

Сейчас я бы сказал, что можно с уверенностью предположить, что все драйверы БД работают одинаково хорошо. Поэтому, если вы более знакомы с MySQL или Oracle, не должно возникнуть проблем с их использованием. Я использовал только Django с MySQL, и у меня не было проблем.

2 голосов
/ 23 января 2011

Поддерживаются все подключаемые базы данных, т. Е. Слой модели / db будет абстрагироваться от специфики db. Что касается производительности, я бы предложил MySQL 5 или Postgresql. Oracle определенно будет хорошо работать, но в долгосрочной перспективе может оказаться дороже. Если вы только начали свой проект, sqlite3 - ваш друг, просто потому, что он будет настроен в течение нескольких секунд.

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

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