Получаю посты из базы, в slow-query.log запрос пишется так:
# Query_time: 0.493179  Lock_time: 0.000039  Rows_sent: 21  Rows_examined: 127314
В mysql explain все хорошо, в поле rows 277 (это нужное количество записей).
Как вообще оптимизировать запросы, если в explain все хорошо? Не очень удобно лазить после каждого запроса в slow-query.log.
Ну и посоветуйте, пожалуйста, как такой запрос улучшить:
#
#posts - посты, привязанные к авторам (поле entity_id)
#entity_user - авторы, на которых пользователь подписан
#posts_user - просмотренные пользователем посты
#
#Получаем id постов
select `posts`.`id` 
from `posts` 
#Выбираем только те, на которые пользователь подписан
inner join `entity_user` on `entity_user`.`entity_id` = `posts`.`entity_id` 
#Помечаем "прочитанные"
left join `post_user` on `post_user`.`post_id` = `posts`.`id` and `post_user`.`user_id` = 9 
where `posts`.`created_at` >= '2016-09-20'
and `posts`.`is_duplicate` = '0' 
and `posts`.`deleted` is null 
and `entity_user`.`user_id` = 9 
order by `posts`.`created_at` desc limit 21;