Which database engine to choose for Django app?
我是Django的新手,仅在Django中将sqlite3用作数据库引擎。现在,无论是从模型的复杂性还是从请求/秒的angular来看,我正在处理的应用程序之一都变得越来越大。
Django在性能方面如何比较Django支持的数据库引擎?使用它们有任何陷阱吗?最后但并非最不重要的一点是,一旦使用了一段时间,切换到另一个引擎有多容易?谢谢!
如果要使用关系数据库,则在Django社区中最流行的似乎是PostgreSQL。这是我个人的最爱。但是,MongoDB在Python / Django社区中似乎也很受欢迎(不过,我从未用它做过一个项目)。 MySQL上也有很多成功的项目。但是,我个人更喜欢PostgreSQL 9.0或9.1。希望这会有所帮助。
编辑:这篇文章我做得并不出色。只是想添加一些其他注意事项。
对于绝大多数网站,MySQL或PostgreSQL都可以正常工作。两者都有优点和缺点。我建议您使用google" MySQL vs. PostgreSQL"进行搜索(在撰写本文时,我的搜索量超过3,000,000)。以下是进行评估的一些技巧。
此外,如果您打算在系统中使用任何触发器,则MySQL和InnoDB会存在一些与它们和ACID遵从性有关的非常讨厌的错误。这是第一个,这是另一个。您可能不需要此功能,只需了解它即可。
可能对您有所作为的最后一件事是,使用PostgreSQL,您可以使用Python编写db函数。这是此文档的链接。
MySQL和Postgres是Django社区中使用的两个最常见的数据库后端,它们具有可比的性能。我同意Postgres在Django社区中更受欢迎,尽管我没有任何硬性数字可以证明这一点。我当然不是要选择MySQL,但我想说将MySQL与Django(或一般而言,MySQL)一起使用时会遇到一些常见的陷阱:
一些关于Django各种功能的文档在各种数据库后端中不受支持:https://docs.djangoproject.com/en/1.3/ref/databases/。
我不确定要使用哪个数据库,但是如果有人打算使用MongoDB,请注意,它仅适用于py2而不适用于py3。
参考链接:
使用Django 1.10,mongodb和Python 3.4.3进行项目设置
在Windows上使用django mongodb引擎使用django设置MongoDB时出错
设置MongoDB Django
MySQL和PostgreSQL与Django搭配使用效果最佳。我强烈建议您选择一个,在开发时更改开发设置以使用它(与在开发人员模式下使用sqlite3和在生产中使用"真实"数据库相对),因为存在细微的行为差异,这可能会引起很多麻烦。未来。