我有一张约有1.5亿行的表格。我添加了一个新的布尔字段,该字段不在旧行中。因此,我在这些行中添加了null并创建了该字段。
ride_active = models.NullBooleanField(null=True, blank=True)
我将其迁移到数据库,并在此字段上添加了管理员过滤器。
list_filter = (
'ride_active',
)
现在,所有先前的行都具有Null
值,因此Unknown
过滤器值可以正常工作。但是在过滤Yes
和No
时,查询会花费太多时间,并导致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的字段上加快查询速度,从而创建部分索引?