Добавление индекса замедляет запрос

1
задан vicdup 11 March 2019 в 13:30
поделиться

1 ответ

Для данного столбца вам нужно только проверить, является ли он null или нет, я не вижу смысла индексировать это. Вместо этого, поскольку booking.paid_at не должно быть null, я бы изменил join с booking и contact на inner join и использовал бы критерии, приведенные в для where для 118 и 119 в соответствии с критериями.

Пример:

SELECT count(DISTINCT booking.id)
FROM ride 
       JOIN booking ON ride.booking_id = booking.id
       AND booking.paid_at IS NOT NULL
       AND booking.cancelled_at IS NULL
       JOIN contact ON ON booking.contact_id = contact.id
       AND (contact.first_name LIKE UPPER('%GAE%') OR contact.last_name LIKE UPPER('%GAE%') OR contact.email LIKE UPPER('%GAE%'))
       LEFT JOIN spot s1_ ON ride.from_spot_id = s1_.id
       LEFT JOIN spot s2_ ON ride.to_spot_id = s2_.id;

Если он все еще медленный, вы можете предварительно выбрать идентификаторы contact перед запросом и использовать оператор in.

0
ответ дан Lajos Arpad 11 March 2019 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: