如何优化这个Django查询

时间:2015-01-01 06:16:57

标签: python mysql django django-debug-toolbar

我安装了django-debug-toolbar并且看到此查询在每个页面请求上执行。

QUERY = u'SELECT "auth_user"."id", "auth_user"."password", "auth_user"."last_login", "auth_user"."is_superuser", "auth_user"."username", "auth_user"."first_name", "auth_user"."last_name", "auth_user"."email", "auth_user"."is_staff", "auth_user"."is_active", "auth_user"."date_joined" FROM "auth_user" WHERE "auth_user"."username" IS NULL LIMIT 21' - PARAMS = ()

Connection: default

以下是INSTALLED_APPS ins settings.py文件。

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'djcelery',
    'hct',
    'kombu.transport.django',
    'debug_toolbar'
)

所需时间因页面而异。我的auth_user文件中没有定义名为models.py的表。查询执行的位置以及每个页面请求的原因。有没有办法优化这个查询?

2 个答案:

答案 0 :(得分:0)

Django在打印查询集时发出自动LIMIT 21。您是否有可能在某处打印此查询以进行调试?

答案 1 :(得分:0)

auth_user是Django在您启动新项目时创建的默认表。我建议创建一个新项目(不要改变任何东西),并使用这个database browser tool。这有助于您更好地了解创建新项目时会发生什么。