Python 如何提高django管理站点上数据库数据可视化的性能?

Python 如何提高django管理站点上数据库数据可视化的性能?,python,mysql,django,performance,django-admin,Python,Mysql,Django,Performance,Django Admin,这是我使用django的第一步,所以如果这看起来微不足道,请不要生气 我有一个非常大的表mynames(~1000000个入口),我想在django管理站点中使这个表可编辑。我连接了django官方书籍中描述的东西:我有一个模型,我通过admin.site.register(mymodel)注册了它。我可以看到我的管理网站上的“表”,我可以点击它看到第一页的全名。到目前为止还不错。只要我点击页面底部的“显示下一页按钮”,查询将永远持续下去 问题出在哪里 更新: 我在相关列中添加了一个索引,现在速

这是我使用django的第一步,所以如果这看起来微不足道,请不要生气

我有一个非常大的表
mynames
(~1000000个入口),我想在django管理站点中使这个表可编辑。我连接了django官方书籍中描述的东西:我有一个模型,我通过
admin.site.register(mymodel)
注册了它。我可以看到我的管理网站上的“表”,我可以点击它看到第一页的全名。到目前为止还不错。只要我点击页面底部的“显示下一页按钮”,查询将永远持续下去

问题出在哪里

更新: 我在相关列中添加了一个索引,现在速度很快。我是这样想的

name = models.CharField(max_length=100, db_index=True, unique=True)

在模型定义中,该列将有一个索引。但是没有。只有唯一的索引。这是应该的方式还是我遗漏了什么?

如果粘贴完整的模型类,就更容易看出问题所在。桌子上有指定的顺序吗?如果是这样,您需要创建一个相应的索引,以便快速分页该字段。是否在模型的ModelAdmin类上设置了list_display属性?默认情况下,django应该根据主键对行进行排序,这样就不需要额外的索引。还要检查您是否覆盖了模型的
\uuuuuuuunicode\uuuuuuu
方法,从而在django admins表中显示实体时会导致额外的数据库查找?

“seams to take ever”?当您从交互式提示符(
>>来自app.models import Class;>>>Class.objects.all()
)运行时,数据库需要多长时间才能获取所有1000000行?@S.Lott:您给我的命令(我根据我的应用程序和我的类进行了调整)会立即提示前25个条目,并以点结束,我想这表明还有更多的条目。但是如果我做
len(Class.objects.all())
似乎需要非常非常长的时间…多长时间?如果您的查询在交互式提示下花费了很长时间,那么您的数据库速度很慢。您有一个MySQL问题,而不是Django问题。打开MySQL工具,在SQL>提示下,输入
SELECT*FROM app\u class
。这需要多长时间?@S.Lott,你的提示为我指明了正确的方向。查看我的编辑。非常感谢。我想接受你的回答,但你只发表了评论。:-)我还是不知道你的问题是什么。它一直在变化。“应该是这样的吗?”。我相信你有证据证明一定是那样的。你读过吗?