【问题标题】:django multiple database for multiple organisation in a single projectdjango 多个数据库,用于单个项目中的多个组织
【发布时间】:2014-11-27 06:04:55
【问题描述】:
在我的项目中有两个模型,ORGANISATION 和 CUSTOMER。我正在做的是在向组织添加新客户时,我将 organization_id 保存到表 CUSTOMER 中。但是现在我担心我的项目的性能当数据库变得庞大时。
所以现在我计划为每个新创建的组织创建新数据库。并将组织的所有信息保存在该组织的数据库中。但是我不知道如何为每个新创建的组织创建一个新数据库。我想知道哪种方法在性能上更好。如果不是,请更正问题。
【问题讨论】:
标签:
mysql
django
python-2.7
【解决方案1】:
为每个组织创建一个新数据库是没有意义的。即使客户或组织的数量增长到数百或数千,将数据保存在单个数据库中也是您的最佳选择。
编辑:
您最初担心的是组织数量的增加会影响绩效。那么,想象一下如果您必须为每个组织创建一个完整的数据库。您将复制 n 次相同的表、索引、视图等。每个数据库都需要系统资源和磁盘空间。更不用说让 Django 意识到拆分所需的代码了。您必须从 n 个数据库中获取数据,而不是一个数据库中的一个表。
还要记住,像 PostgreSQL 或 MySQL 这样的强大数据库非常有能力管理数千或数百万条记录。他们会比你想出的任何代码做得更好。只需相信他们的数据,如果您发现性能下降,您可以在网上找到大量提示来优化它们。