django: postgres Опрос логического поля с нулевыми значениями - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть таблица с 150 миллионами строк.Я добавил новое логическое поле, которого не было в старых строках.Итак, я добавил null в эти строки и создал поле.

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

Я перенес его в БД и добавил в это поле фильтр администратора.

list_filter = (
    'ride_active',
)

Filter Values

Теперь все предыдущие строки имеют значение 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, создав частичный индекс?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...