아래 테이블 처럼 데이터가 100만개 가량 되는 테이블이 있습니다.
log_name |
cate |
log_num |
credate |
1페이지 |
74 |
2 |
2015-11-18 14:23:23 |
2페이지 |
45 |
1 |
2015-11-18 15:21:45 |
1페이지 |
74 |
2 |
2015-11-18 17:12:43 |
3페이지 |
234 |
5 |
2015-11-18 16:08:15 |
5페이지 |
45 |
3 |
2015-11-18 14:15:42 |
해당 테이블에 로그를 뽑아 오는 중에 데이터 양이 방대하여 시간이 너무 오래 걸리고 있습니다.
아래 쿼리문으로 로그를 뽑아 오고 있는데 시간을 줄일수 있는 방법이 없을까요?
SELECT log_name, GROUP_CONCAT(CASE WHEN DATE_FORMAT(credate,'%Y-%m-%d %H')='2015-11-18 15' THEN log_num END ORDER BY naver_num ASC SEPARATOR ',') AS row_0,
GROUP_CONCAT(CASE WHEN DATE_FORMAT(credate,'%Y-%m-%d %H')='2015-11-18 14' THEN log_num END ORDER BY naver_num ASC SEPARATOR ',') AS row_1,
GROUP_CONCAT(CASE WHEN DATE_FORMAT(credate,'%Y-%m-%d %H')='2015-11-18 13' THEN log_num END ORDER BY naver_num ASC SEPARATOR ',') AS row_2,
GROUP_CONCAT(CASE WHEN DATE_FORMAT(credate,'%Y-%m-%d %H')='2015-11-18 12' THEN log_num END ORDER BY naver_num ASC SEPARATOR ',') AS row_3,
GROUP_CONCAT(CASE WHEN DATE_FORMAT(credate,'%Y-%m-%d %H')='2015-11-18 11' THEN log_num END ORDER BY naver_num ASC SEPARATOR ',') AS row_4,
GROUP_CONCAT(CASE WHEN DATE_FORMAT(credate,'%Y-%m-%d %H')='2015-11-18 10' THEN log_num END ORDER BY naver_num ASC SEPARATOR ',') AS row_5
FROM log_table WHERE 1 AND DATE_FORMAT(credate,'%Y-%m-%d %H') <='2015-11-18 15' AND DATE_FORMAT(credate,'%Y-%m-%d %H') >='2015-11-18 10' AND cate='74' GROUP BY log_name |