У меня есть таблица с 150 миллионами строк.Я добавил новое логическое поле, которого не было в старых строках.Итак, я добавил 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, создав частичный индекс?