【问题标题】:The maximum number of objects that can be instantiated with a Django model?可以使用 Django 模型实例化的最大对象数?
【发布时间】:2015-03-05 19:44:15
【问题描述】:
我写了一个应用来记录用户与网站搜索框的交互,
查询字符串保存为模型SearchQuery 的对象。每当用户在搜索框中输入一些数据时,我都可以将搜索查询以及与查询相关的一些信息保存在数据库中。
这是为了获取搜索趋势的想法,
我的数据库模型中的字段是,
- 一个字符字段 (max_length=30)
- 一个正整数字段
- 布尔字段
我的问题是,
可以从模型SearchQuery 中实例化多少个对象?如果有数量限制?
由于对象不相关(没有数据库关系),我应该使用 MongoDB 还是某种 NoSQL 来提高性能?
这是一个好的设计还是我应该做更多的工作来提高效率?
Django 版本 1.6.5
Python 2.7 版
【问题讨论】:
标签:
python
django
mongodb
python-2.7
architecture
【解决方案1】:
-
可以从模型 SearchQuery 中实例化多少对象?如果有数量限制?
您选择的数据库可以处理多少,这可能是数百万。如果您担心,您可以使用调度程序在旧查询不再有用时删除它们。
-
由于对象不相关(没有数据库关系),我应该使用 MongoDB 还是某种 NoSQL 来提高性能?
你可以,但它不太可能给你很多(如果有效率提升的话)。因为您正在进行频繁的写入和(可能)不频繁的读取,所以它不太可能对数据库造成很大的影响。
-
这是一个好的设计还是我应该做更多的工作来提高效率?
我可能会提出两个建议。
一个。如果您要经常阅读搜索日志,look at using multiple databases。一个用于您的日志,一个用于其他所有内容。
b.考虑仅使用常规日志文件来获取此信息。同样,您可能只是不经常检查这些数据。因此,有一些字符串参数可以将其通过管道传输到可能类似于 CSV 的日志文件中,以便更轻松地对其进行数据分析。