用Django逼近对象统计

用Django逼近对象统计,django,Django,如果我说有70000个对象,想对它们进行统计,但统计数据不需要100%准确,那么最好的方法是什么?比如说1000个对象,对这些对象进行统计,然后将其缩放到接近70000个对象的统计数据?我似乎找不到一种有效的方法从查询集中获取1000个随机对象 您可以使用以下工具获取随机对象: objs = list(MyModel.objects().order_by("?")[:1000]) 但是,为SQL生成的基本的随机排序并不是特别有效。我知道这不是您想要的答案,但有时在执行大量报告时,您需要Djan

如果我说有70000个对象,想对它们进行统计,但统计数据不需要100%准确,那么最好的方法是什么?比如说1000个对象,对这些对象进行统计,然后将其缩放到接近70000个对象的统计数据?我似乎找不到一种有效的方法从查询集中获取1000个随机对象

您可以使用以下工具获取随机对象:

objs = list(MyModel.objects().order_by("?")[:1000])

但是,为SQL生成的基本的随机排序并不是特别有效。

我知道这不是您想要的答案,但有时在执行大量报告时,您需要Django的ORM所不能提供的更多。我曾与一位使用Django作为其主要应用程序的人共事,但对于一些报告工具(和JSON服务),他使用了Flask和SQLAlchemy,并且能够完成更多的工作,而无需编写SQL。

关于从数据库中获取随机行的问题存在争议(注释中也没有什么优点)


我唯一要检查的是通过“批量”方法获取一些对象,因为这样可能会更快。

这正是我遇到的问题。我读过的文档说,.order_by(“?”)速度很慢,如果我试图通过采样集来加快速度,这是没有帮助的。