나는 나의 MySQL 데이터베이스에 위의 모델을 가지고 :괜찮은 성능으로 일대 다 연관 날짜별로 주문하는 방법은 무엇입니까?
Blogs (id: integer, name: varchar)
Posts (id: integer, name: varchar, blog_id: integer, created_at: date)
내가 newests의 게시물이 사람에 의해 주문 된 모든 블로그의 목록을 검색 할 수 있습니다.
SELECT b.*, (SELECT p.created_at FROM posts p WHERE p.blog_id = b.id ORDER BY p.created_at DESC LIMIT 1) AS last_post_created_at FROM blogs b ORDER BY last_post_created_at DESC;
는 그러나이 쿼리가 너무 느리고 내 응용 프로그램에서 사용할 수 없어요 :
나는 다음과 같은 쿼리 것을 도달했습니다.
너희들은 그 좋은 해결책이 있니?
감사합니다.
'블로그'테이블의 행 수는 몇 개인 지? –
이 쿼리의'Posts' 테이블에'(blog_id, created_at)'인덱스를 추가하십시오. –
@ypercube 약 10k 및 게시물 약 100k – robertokl