Django项目的数据库选择选择

时间:2011-01-23 15:44:35

标签: database django choice

Django(http://djangoproject.com)框架目前支持以下数据库:PostgreSQL,SQLite 3,MySQL 5和Oracle。这个问题不是关于这些数据库的比较,相反,我想知道它们与Django兼容性的详细信息,以及如何为简单(但正在增长)的项目选择合适的数据库。

3 个答案:

答案 0 :(得分:5)

这取决于。如果您不想为Oracle支付(巨额)费用,您可以选择MySQL和PostgreSQL(SQLite主要用于开发,而不是生产)。 PostgreSQL似乎是大多数Django核心开发者的选择(Andrew Godwin甚至将“朋友不要让朋友使用MySQL”放到DjangoCon talk)。尽管如此,Django完全支持MySQL,many Django websites在生产中使用它。

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

  • 如果您使用GeoDjango。除PostGIS之外别无选择。 MySQL的GIS支持充其量只是黯淡无光。
  • South。 MySQL无法在模式迁移期间使用事务,这意味着如果南迁移出错,那么您将在两次迁移之间挂起而没有明确的前进或后退方式。 PostgreSQL在这种情况下可以省去很多痛苦。

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

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

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