select `id`
from `posts`
where `posts`.`created_at` >= '2016-01-24'
and `is_duplicate` = 0
and `deleted` is null
and exists (select 1 from `entity_user` where `entity_user`.`user_id` = 2 and `entity_user`.`entity_id` = `posts`.`entity_id`)
limit 20
Вот такой код выдает в explain 2 миллиона строк в поле rows, а если добавить сортировку, то 20
select `id`
from `posts`
where `posts`.`created_at` >= '2016-01-24'
and `is_duplicate` = 0
and `deleted` is null
and exists (select 1 from `entity_user` where `entity_user`.`user_id` = 2 and `entity_user`.`entity_id` = `posts`.`entity_id`)
order by `posts`.`created_at` desc
limit 20
Индекс используется вот такой created_at_post_type_is_duplicate_deleted.
Почему так происходит? Везде всегда пишут, что сортировка замедляет запрос, а тут получается ускоряет?