【发布时间】:2011-09-03 14:56:43
【问题描述】:
这是我使用 django 的第一步,所以如果这看起来微不足道,请不要冒犯。
我有一个非常大的表格 mynames(~ 1 000 000 个条目),我想让这个表格在 django 管理站点中可编辑。我按照官方 django 书中的描述连接了一些东西:我有一个模型,我通过admin.site.register(mymodel) 注册了它。我可以在我的管理网站上看到“表格”,我可以点击它来查看第一页的名字。到目前为止很好。当我点击页面底部的“显示下一页按钮”时,查询会一直持续下去。
问题可能出在哪里?
更新:
我在相关列中添加了索引,现在速度很快。我想通过做
name = models.CharField(max_length=100, db_index=True, unique=True)
在模型定义中,该列会有一个索引。但是没有。只有唯一索引。这是应该的方式还是我错过了什么?
【问题讨论】:
-
“接缝永远”?当您从交互式提示 (
>>> from app.models import Class; >>> Class.objects.all()) 运行时,数据库获取所有 1,000,000 行需要多长时间? -
@S.Lott:你给我的命令(我将它们调整到我的应用程序和我的班级)立即提示前 25 个条目或左右,并以点结尾,表明还有更多,我猜.但如果我这样做
len(Class.objects.all())似乎需要非常非常长的时间...... -
多长时间?如果您的查询永远在交互式提示下进行,则您的数据库很慢。你有一个 MySQL 问题,而不是 Django 问题。打开 MySQL 工具并在 SQL> 提示符下输入
SELECT * FROM app_class。这需要多长时间? -
@S.Lott,您的提示为我指明了正确的方向。请参阅我的编辑。谢谢你。我想接受你的回答,但你只发表了评论。 :-)
-
我还是不知道你的问题是什么。它不断变化。 “这就是它应该的方式吗”。我相信你有证据证明它一定是那样的。你读过docs.djangoproject.com/en/1.3/ref/models/fields/#db-index吗?
标签: python mysql django performance django-admin