안녕하세요.
MySQL 관련 UNION 질문이 있습니다.
게시판 테이블 ( BOARD)
boardNo(게시글 번호) | title(제목) | content(내용) | userNo(게시글 작성자) |
1 | 제목1 | 내용1 | 10 |
2 | 제목2 | 내용2 | 11 |
댓글 테이블 (REPLY)
replyNo(댓글번호) | content(댓글 내용) | boardNo(게시글 번호) | userNo(게시글 작성자) |
1 | 댓글 내용1 | 1 | 50 |
2 | 댓글 내용2 | 2 | 51 |
두개의 테이블이 있습니다.
제가 원하는건 하나의 게시판 테이블(html)에서 게시글+댓글 같이 보기 라는 기능이 있는데
쿼리에서 제가 한건
select * from ( select boardNo as boardNo, title as title, content as content from BOARD union all select replyNo as boardNo, '' as title, content as content from REPLY ) limit 0, 30;
이런식으로 하였습니다.
처음에는 어차피 30개씩 가져와야 하니깐 limit를 각테이블당 15개씩 하면 되지 않을까? 라고 생각을 했는데 한쪽에 데이터가 없거나 부족할때는 많이 문제가 되어서
해당 쿼리처럼 제일 마지막에 페이징을 하였는데요
30개씩만 가지고 오는거지만 데이터가 지금 900만개가 넘은 상황이다 보니 성능이 많이 문제가 되더라구요
이런경우는 다들 쿼리 튜닝을 어떤식으로 하시는지 궁금합니다.