로그인기록으로 일일방문자수 구하는 쿼리(MySQL)
조회수 2825회
유저아이디(INT) 와 로그인시간(Timestamp)을 컬럼으로 갖고, 유저가 로그인을 할 때마다 1씩 기록을 INSERT시키는 테이블이 있습니다.
이 테이블로부터 중복을 제거한 일일방문자수를 구하고 싶은데, 이상하게 쿼리가 떠오르질 않네요ㅠ
여러가지를 시도해보다가
일단은
SELECT A, COUNT(*) FROM (SELECT DATE(로그인시간) AS A, 유저아이디 FROM 로그인기록테이블 GROUP BY A, 유저아이디) AS B GROUP BY A
이런식으로 해봤는데 ROW수가 2000만개정도 되서 그런지 쿼리 수행에 15분정도 걸리는 것 같습니다.
쓸대없는 연산을 하는 것이라면 DB에 부하도 많이 줄 것 같아서, 이 테이블로부터 동일한 결과를 내는 더 빠르고 효율적인 쿼리가 없을까 궁금한데요.
이 문제에 대한 정석적인 방법이 있을까요?
-
(•́ ✖ •̀)
알 수 없는 사용자
댓글 입력