g4_login 테이블에 대하여 > 십년전오늘

십년전오늘

10년전 추억의 책장을 넘기며

g4_login 테이블에 대하여 정보

기타 g4_login 테이블에 대하여

본문

g4_login 테이블: head.sub.php에서 로그인 기록을 위해 사용하기에 head.php 가 포함된 화일이 있는 거의 모든 페이지에서 쿼리를 보내는 테이블

서버상황: 방문자가 거의 없고, 주로 본인이 자동로그인 가능하게 하고 관리자로 접속함.
테스트용 회원아이디 1개, 가입한 회원 없음.

쿼리 기록: common.lib.php 내의 sql_query 함수에서 select 구문만 모두 저장하도록 함.

g4_login 테이블에 해당하는 쿼리와 쿼리회수

2890회 : select sum(IF(mb_id<>'',1,0)) as mb_cnt, count(*) as total_cnt from g4_login  where mb_id <> 'admin'

867회 : select count(*) as cnt from g4_login where lo_ip = 'IP번호' 형식

57회 : select a.mb_id, b.mb_nick, b.mb_name, b.mb_email, b.mb_homepage, b.mb_open, a.lo_ip, a.lo_location, a.lo_url
          from g4_login a left join g4_member b on (a.mb_id = b.mb_id)
         where a.mb_id <> 'admin'
         order by a.lo_datetime desc

phpmyadmin 으로 본 login table 현황
인덱스: 도움말
키 이름 종류 Cardinality 실행 필드
PRIMARY PRIMARY

lo_ip
lo_datetime INDEX

lo_datetime
mb_id
 
공간 사용량: 
종류 사용법(량)
데이터 52 B
인덱스 5,120 B
전체 사용량 5,172 B
 
행(레코드) 통계: 
명세
Format 동적(다이내믹)
행(레코드) 1
행 길이 ø 52
Row size  ø 5,172 B
생성 05-11-04 07:07
업데이트 05-12-04 23:05
검사 05-12-04 23:05



한달 동안의 위 데이터로 미루어 보면 lo_datetime 과 mb_id 를 묶은 인덱스가 사용되는 곳이 보이질 않으며,
매번 생성, 수정, 삭제되는 데이터에 인덱스가 있어 인덱스 테이터만 늘어나게 됨니다.
저의 경우는 페이지 이동시에 인덱스 테이터가 1Byte 늘어나더군요.

실제로 login 테이블을 인덱스 없이 다시 생성하고 사용해 보니 인덱스 테이터가 3072Byte 가 되었고 페이지 이동시에도 고정됨을 볼 수 있었습니다.

가 입한 회원들이 많은 곳에서 lo_datetime, mb_id 인덱스를 많이 사용하는지 검토하여 수정하는것이 어떨지요. (단순하게 그누4.06.10 버전의 소스에서 $g4[login_table] 변수가 사용되는 곳(총7군데)을 검색해 봐도 위 인덱스가 사용되는 곳을 찾을 수가 없었습니다.)

제가 고려하지 못한부분이 있다면 지적 부탁드립니다.....
  • 복사

댓글 전체

© SIRSOFT
현재 페이지 제일 처음으로