django:postgres使用空值查询布尔字段

时间:2018-12-18 09:55:18

标签: django postgresql performance django-models

我有一张约有1.5亿行的表格。我添加了一个新的布尔字段,该字段不在旧行中。因此,我在这些行中添加了null并创建了该字段。

ride_active = models.NullBooleanField(null=True, blank=True)

我将其迁移到数据库,并在此字段上添加了管理员过滤器。

list_filter = (
    'ride_active',
)

Filter Values

现在,所有先前的行都具有Null值,因此Unknown过滤器值可以正常工作。但是在过滤YesNo时,查询会花费太多时间,并导致Bad Gateway

在测试环境中解释查询时,

Index Scan Backward using iot_data_nov_pkey on iot_data_nov  
(cost=0.44..1604685.17 rows=12708380 width=311)
  Filter: ride_active

我认为在此字段上添加索引不是一个好主意。如何在该值为True / False的字段上加快查询速度,从而创建部分索引?

0 个答案:

没有答案