도와주세요!! 개발자님들! > IT정보

IT정보

IT와 관련된 유용한 정보와 새로운 소식을 공유하세요.
질문은 상단의 QA에서 해주시기 바랍니다.

도와주세요!! 개발자님들! 정보

도와주세요!! 개발자님들!

본문

안녕하세요. 오랜만에 접속하네요.

질문이 있을때 마다 SIR를 찾게되네요. 전문가분들이 너무 많으셔서요.

 

메인 검색

select substr(hv_datetime, 12, 2) as Times from hit_visit group by Times 

하위 검색

select count(*) as Count from hit_visit where (1) and hv_set = 'Visit' and hv_datetime like '% ".$Row[0]['Times'].":%'

select count(distinct(hv_ip)) as Count from hit_visit where (1) and hv_set = 'Visit' and hv_datetime like '% ".$Row[0]['Times'].":%'

select count(*) as Count from hit_visit where (1) and hv_set = 'Purchase' and hv_datetime like '% ".$Row[0]['Times'].":%'

select count(*) as Count from hit_visit where (1) and hv_set = 'Put' and hv_datetime like '% ".$Row[0]['Times'].":%'

select count(*) as Count from hit_visit where (1) and hv_set = 'Attention' and hv_datetime like '% ".$Row[0]['Times'].":%'

 

이런 방식으로 불러오고 있습니다.

그런데 이용자가 많아지다보니 속도부분에서 너무 오래 걸리게 되더라구요..

혹시 한번에 처리 할 수 있는 방법은 없을까요?

 

간단한 예제 부탁드립니다.

 

그리고 감사합니다.^^

추천0 비추천0

댓글 전체

select
(select count(*) as Count from hit_visit where (1) and hv_set = 'Visit' and hv_datetime like '% ".$Row[0]['Times'].":%' ) as hit_visit1
(select count(distinct(hv_ip)) as Count from hit_visit where (1) and hv_set = 'Visit' and hv_datetime like '% ".$Row[0]['Times'].":%' ) as hit_visit2
(select count(*) as Count from hit_visit where (1) and hv_set = 'Purchase' and hv_datetime like '% ".$Row[0]['Times'].":%' ) as hit_visit3
(select count(*) as Count from hit_visit where (1) and hv_set = 'Put' and hv_datetime like '% ".$Row[0]['Times'].":%' ) as hit_visit1
(select count(*) as Count from hit_visit where (1) and hv_set = 'Attention' and hv_datetime like '% ".$Row[0]['Times'].":%' ) as hit_visit4

이런식으로 해서

hit_visit1 ~ hit_visit4 까지 한번 에 가지오 올수 있습니다.
그리고 데이터 양이 많아서 속도가 느리면요..조건걸럼에다가 index를 걸어주시면 속도가 훨씬 빨라집니다.
답변 감사합니다.
그런데 ㅠㅠ 실행이 안되네요.. ㅠㅠ찡

$Select = "
select
(select count(*) as Count from hit_visit where (1) and hv_set = 'Visit' and hv_datetime like '% 05:%' ) as hit_visit1
(select count(distinct(hv_ip)) as Count from hit_visit where (1) and hv_set = 'Visit' and hv_datetime like '% 05:%' ) as hit_visit2
(select count(*) as Count from hit_visit where (1) and hv_set = 'Purchase' and hv_datetime like '% 05:%' ) as hit_visit3
(select count(*) as Count from hit_visit where (1) and hv_set = 'Put' and hv_datetime like '% 05:%' ) as hit_visit1
(select count(*) as Count from hit_visit where (1) and hv_set = 'Attention' and hv_datetime like '% 05:%' ) as hit_visit4
";
$Query = sql_query($Select);
while($Row = sql_fetch_array($Query)){
 print_r($Row);
 echo "<br/>";
}
like 사용시에 times를 계속 조회하셔야 하는 사항이면 빨리질수 없습니다.
윗 분님의 설명대로
index를 걸어도 도움은 됩니다만
약효는 금방 떨어질듯 합니다.

참고로 count(*) 보다 특정 컬럼 한개 예를들어 select count(no) 와 같이 처리하시는게 속도에 도움이됩니다.
count(*) 이게 더빠르지 않나요? 기억이 가물가물하지만 이게 count(*) 더빠르다는 실험했다는 분이 있으신데 아 찾아보니 여기 결론이 있네요 http://nampoong.tistory.com/96
전체 3,523
IT정보 내용 검색

회원로그인

진행중 포인트경매

  1. 500여 동영상강좌 평생 무료 이용 쿠폰 (365OK 무료이용)

    참여26 회 시작18.07.16 11:13 종료18.07.21 11:13
  2. GNU푸시앱 70%할인(107,800원 상당) 쿠폰

    참여17 회 시작18.07.16 10:39 종료18.07.19 10:39

(주)에스아이알소프트 (06253) 서울특별시 강남구 도곡로1길 14, 6층 624호 (역삼동, 삼일프라자) 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT