> LEFT JOIN возращает NULLы для отсутствующих записей, оные нуллы ищутся в
> последней таблице, находятся (их там до фига) и читаются соответствующие
> записи. Мы в 2.0 исключили скан нуллов в индексах для операции
> равенства, но только для односегментных индексов, а у тебя там композит
> по двум полям. Сделай индекс только по FeedId и запрос залетает мухой.


Так ведь я там специально составной индекс сделал вместо нужного там FK
чтобы количество дубликатов уменьшить. У нас ведь нету возможности
указать индексировать нуллы или нет, а нуллов там может быть больше
половины записей.
Я сейчас переделал на INNER JOIN, который там собственно и должен быть
по смыслу, и всё летает.

Осталось выяснить вот что:

1) Не бредовая ли это хотелка добавить параметр в индексы и ключи для
указания индексировать нуллы или нет? Если не бредовая, то я оформлю в
трекер.

2) Почему ж оно с RIGHT JION работает быстро? Вроде бы те же яйца...

3) Если хочешь, я могу по этому поводу тоже написать в трекер чтоб вы не
забыли это пофиксить при случае, а то я то на грабельки наступил и
отделался испугом, а кто-то другой может большую шишку набить.
Неочевидная ведь проблема.

Ответить