ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ZB] 제로보드 4.x [제로카운터] IP & Referer 자동 삭제 (5일이전)
    Archive/기타 2005. 2. 5. 15:12
    제로카운터 받기
    [제로카운터] 자동으로 DB를 지우자. (IP와 referer 5일 분량만 남기기)


    제로카운터의 문제점이 있으니,
    모든 방문자의 IP 주소와 Referer 를 DB에 저장하기 때문에
    바로 엄청난 양의 DB 공간을 차지한다는 것입니다.

    다음의 팁은
    IP와 Referer DB를 5일분량만 남기고, 그 이전의 것은 모두 삭제해버리는 방법입니다.
    물론, 카운터수는 그대로 유지되되며 필요없는 IP 정보와 Referer 만 삭제하는 것이죠.

    zerocounter.php3 파일에서, 다음의 코드(대략 50번째 줄)를 찾습니다.

    //------------------- 카운터 값 읽어오는 부분 -------------------------------------------------

    // 전체
    $total=mysql_fetch_array(mysql_query("select unique_counter, pageview from counter_main where no=1", $connect));
    $count[total_hit]=$total[0];
    $count[total_view]=$total[1];
    .
    .
    .

    이 앞부분에 다음의 코드를 추가합니다.

    // 5일 지난 ip값을 자동 삭제 :: 많은 db양을 차지하는 부분을 수정
    $date = 60 * 60 * 24 * 5;
    mysql_query("delete from counter_ip where (".time()." - date) >= ".$date) or error(mysql_error());
    mysql_query("delete from counter_referer where (".time()." - date) >= ".$date) or error(mysql_error());


    zerocounter.php3 파일은 제로카운터가 실행될 때마다 로딩되기 때문에 자동으로 DB를 지워줍니다.
    이렇게 하면 DB 용량도 별로 차지하지 않고, 정기적으로 DB를 삭제해줘야하는 불편도 없습니다.


    --------------------------------------------------------------------
    제로 카운터를 상당기간 사용후, 위의 팁을 적용할 경우
    별도로 "counter_ip", "counter_referer"테이블을 최적화 해주어야 삭제된 DB공간이 확보됩니다.
    phpMyAdmin 등에서, 해당 테이블의 "속성"탭을 확인하여
    처리할 수 있습니다.




    mySQL에서 직접 테이블 조정해주기. [2004/07/19]

    select * from counter_ip;
    // 현재 counter_ip 테이블에 저장된 값을 본다.

    delete from counter_ip where no<100;
    // no값이 100보다 작은 필드를 삭제
    // 적절히 값을 변환해서, 최근의 100개 정도만 남깁니다.

    update counter_ip set no=no-1000;
    // no값을 1000뺀 값으로 리셋한다.
    // 적절히 값을 변환해서 no값을 1번부터 나타나도록 합니다.

    alter table counter_ip auto_increment=101;
    // counter_ip의 auto_increment값을 101로 셋팅한다.

    no필드의 auto_increment가 적용되어 있으므로,
    이 값을 조정해주지 않으면 새로운 필드의 no값이 기존 값을 사용하게 됩니다.
    반응형
Designed by Tistory.