데이터에 따라 두개에 효율성이 다르겠지만 가정을 한번 해볼게요 - *
a, b 컬럼 t 테이블
2013-12-01 01:00:00, 100
2013-12-01 02:00:00, 200
2013-12-01 03:00:00, 50
2013-12-02 01:00:00, 10
2013-12-02 04:00:00, 200
2013-12-02 06:00:00, 5000
위에 처럼 내용이 있는데 건수는 날짜별로 시간별로 24개 년수는 20년에 데이터가
저장되있다고 가정합니다.
이때 날짜별로 가장 마지막에 들어온 row에 b값을 질의해야 하는데요 - *
1. subquery
select a.a, (select b from t where to_char(a, 'YYYY-MM-DD') = a.a order by a desc limit 1) as b
from ( select to_char(a, 'YYYY-MM-DD') as a from t where a between '2000-01-01 00:00:01' and '2010-12-31 24:00:00' ) a order by a.a asc
2. query + php
select a, b, to_char(a, 'YYYY-MM-DD') c from t where a between '2000-01-01 00:00:01' and '2010-12-31 24:00:00' order by a asc;
. return $rows
foreach ($rows as $v) {
$return[$v['c']] = $v['b'];
}
이중 효율성이 어떤게 좋을까요? 여러분들의 의견 부탁드립니다. ㅋㅋ
explain 확인시 2번째 쿼리가 빠르긴 하더라고요. 그래서 php 단으로 해결하는게 좋을지 ...
아니면 다른 의견 있으셔도 ^ ^ 얘기좀 해주세요.
별거 아닌거 같은데 신경이 쓰여서 질문 올려요 - *
|