2011-11-02 65 views
1

我有一个有很多条目(超过12,513,262)的模型,它们应该呈指数级增长。但问题是由于这个巨大的否。项查询正在采取了大量的时间,有没有办法使用索引等Django查询优化

我的查询是这样的,以提高性能:

MyModel.objects.all().order_by('-timestamp')[0:50] 

及其服用大量的时间来执行。

+0

请问,什么是型号名称只是好奇 – danihp

+0

@danihp - ?!为MyModel = d – Glycerine

+0

@Glycerine,当然现在我明白为什么约12513262条目;) – danihp

回答

4

你在时间戳字段上有index吗?

如果您使用的是south(对于数据库迁移,如果您尚未进行数据库迁移,您一定要查看它),您可以将db_index=True添加到您的字段并迁移。否则,你可以运行

./manage.py sqlindexes MyApp 

显示的sql语句添加索引。 (您需要手动运行,例如使用

./manage.py dbshell 
+0

nope如何创建它? – Abhi

+0

我没有任何索引,现在如果可以,我可以创建一个如何做到这一点? – Abhi

+0

如果您尚未使用South,则需要使用相应的SQL手动创建索引。这将根据您使用的数据库而有所不同。询问Google:“创建索引[我的数据库品牌]” –