【发布时间】:2016-01-26 08:49:24
【问题描述】:
我有一个 13M 行的 MySQL 表。我可以直接查询数据库
SELECT DISTINCT(refdate) FROM myTable
查询耗时 0.15 秒,非常棒。
定义为 Django 模型并查询为的等效表
myTable.objects.values(`refdate`).distinct()
需要很长时间。是不是因为distinct()之前的列表中的项目太多了。我该如何以一种不会让一切都崩溃的方式做到这一点?
【问题讨论】:
-
您上面的代码生成的 SQL 将与您手动运行的几乎相同:
SELECT DISTINCT mytable.refdate FROM mytable所以它运行得这么慢很奇怪。您能否使用 django-debug-toolbar 进行分析以确保查询本身如此缓慢? -
我尝试使用 python shell 中的 django 模型并遇到上述问题。我什至从未尝试加载页面并看着它挂起。
-
你能在 shell 中运行查询后转储
connection.queries吗? (from django.db import connection)? -
@solarissmoke 谢谢!这帮助我填补了空白!