按运营成本排序

时间:2017-07-03 07:38:02

标签: django postgresql django-queryset

我有一个73 GB的大表table1。我的大多数查询涉及获取表中满足某些条件的最新100个条目。我使用Django作为此Web应用程序的后端。我的查询与此类似:

table_object = table1.objects.filter(first_filter_field=6)
order_by = '-created_on'
table_object = .filter(not_null_field__isnull=False).order_by(order_by)
table_object = table_object[offset:(offset + limit)]

我认为这个查询需要花费太多时间。

  1. 如何衡量此查询所用的时间? (在Postgres中)
  2. 如何改善其表现?我只需要最新的100个满足某些条件的广告素材(在普通查询中基本上是WHERE语句添加。)
  3. 我是Django的新手,所以请尽可能描述并尽可能地提供相关材料的链接。

1 个答案:

答案 0 :(得分:3)

1)您可以使用名为EXPLAIN ANALYZE的内容。这会帮助你。有关详细信息,请参阅此post 2)创建属性时使用db_index=True。这将帮助您加快搜索速度,因为它会为添加它的列编制索引。
注意 - 对于主键列,默认情况下为db_index = True。但是,您可以为多个列添加db_index = True。