1

Django ( http://djangoproject.com ) 框架目前支持以下数据库:PostgreSQL、SQLite 3、MySQL 5 和 Oracle。这个问题与这些数据库的比较无关,相反,我想了解它们与 Django 的兼容性以及如何为一个简单(但不断增长的)项目选择合适的数据库。

4

3 回答 3

5

这取决于。如果您不想为 Oracle 支付(巨额)溢价,您可以选择 MySQL 和 PostgreSQL(SQLite 主要用于开发,而不是生产)。PostgreSQL 似乎是大多数 Django 核心开发人员的选择(Andrew Godwin 甚至将“朋友不要让朋友使用 MySQL”放入DjangoCon 谈话中)。尽管如此,Django 完全支持 MySQL,并且在生产中被许多 Django 网站使用。

恕我直言,PostgreSQL 比 MySQL 有两个明显的优势:

  • 如果您使用GeoDjangoPostGIS确实没有其他选择。MySQL 的 GIS 支持充其量只是乏善可陈。
  • 。MySQL 在模式迁移期间无法使用事务,这意味着如果南迁移出错,您将在两个迁移之间徘徊,没有明确的前进或后退方式。PostgreSQL 在这种情况下节省了很多痛苦。
于 2011-01-23T16:02:24.257 回答
2

支持所有可插入的数据库,这意味着模型/数据库层将为您抽象数据库特定。至于性能,我建议使用 MySQL 5 或 Postgresql。Oracle 肯定会表现良好,但从长远来看可能会更昂贵。如果您刚刚开始您的项目,sqlite3 是您的朋友,因为它会在几秒钟内完成设置。

处理开发和生产的并行设置已在各种博客文章中讨论过,例如在这篇文章中:

于 2011-01-23T15:55:37.613 回答
2

快速的回答是这并不重要,但如果我必须选择一个,它可能是 PostgreSQL。

最初的 Django 开发人员在早期大力推荐 PostgreSQL。PostgreSQL 可以说/技术上是一个比 MySQL 更好的数据库,所以如果你以前从未使用过它,那么可能值得花一些时间来精益它。

现在,虽然我会说可以安全地假设所有数据库驱动程序都运行良好。因此,如果您更熟悉 MySQL 或 Oracle,那么使用它们应该没有问题。我只将 Django 与 MySQL 一起使用,没有任何问题。

于 2011-01-23T16:02:52.767 回答