Django项目的数据库选择

ehxuflar  于 2023-01-06  发布在  Go
关注(0)|答案(3)|浏览(215)

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

4dbbbstv

4dbbbstv1#

看情况如果你不想付(巨大的)溢价,您可以在MySQL和PostgreSQL之间做出选择(SQLite主要用于开发,而不是生产)PostgreSQL似乎是大多数Django核心开发人员的选择(AndrewGodwin甚至把“朋友不允许朋友使用MySQL”放到了DjangoCon talk中)。Django完全支持MySQL,many Django websites在生产中使用MySQL。
恕我直言,PostgreSQL比MySQL有两个明显的优势:

  • 如果你使用GeoDjango,那么PostGIS确实没有替代品,MySQL的GIS支持充其量也就是乏善可陈。
  • South.MySQL不能在模式迁移过程中使用事务,这意味着如果South迁移出错,您将在两个迁移之间徘徊,没有明确的前进或后退方向。PostgreSQL在这种情况下可以省去很多麻烦。
f3temu5u

f3temu5u2#

快速的答案是,这并不重要,但如果我必须选择一个,它可能是PostgreSQL。
最初的Django开发者在早期强烈推荐PostgreSQL。PostgreSQL可以说/技术上是一个比MySQL“更好”的数据库,所以如果你以前从未使用过它,可能值得花一些时间来学习它。
现在我可以说所有的DB驱动程序都工作得很好。所以如果你更熟悉MySQL或Oracle,使用它们应该没有问题。我只在MySQL上使用过Django,没有遇到过任何问题。

t9aqgxwy

t9aqgxwy3#

所有的可插拔数据库都被支持,这意味着模型/数据库层将为你抽象出数据库的细节。至于性能,我建议使用MySQL 5或Postgresql。Oracle肯定会表现得很好,但从长远来看可能会更贵。如果你刚刚开始你的项目,sqlite3是你的朋友,因为它将在几秒钟内安装完毕。
处理开发和生产的并行设置已经在不同的博客文章中讨论过,例如:

相关问题