그누보드5 디비 g5_uniqid 2일전 데이터 자동삭제 정보
그누보드5 디비 g5_uniqid 2일전 데이터 자동삭제
본문
g5_uniqid 가 엄청 쌓여서 extend 폴더에 업로드 해서, 자동으로 삭제되도록 만들었습니다.
extend 폴더에 uniqid_cleanup.extend.php 을 생성해서 아래 내용을 저장 업로드 합니다
g5_uniqid 에는 영카트 쇼핑몰에서 장바구니, 주문하기 등에서 사용된다고 합니다.
<?php
// extend/uniqid_cleanup.extend.php
// ────────────────────────────────────────
// g5_uniqid 자동정리 + 테이블 최적화 + 로그 크기 제한
// - 상품이 없을 때: 2일 이전 삭제
// - 상품이 있을 때: 30일 이전 삭제
// ver.2025.11.06-final-const (PHP 5.4~8.x 호환)
// ────────────────────────────────────────
if (!defined('_GNUBOARD_')) exit;
// ─────────────────────────────
// 설정 상수 (필요 시만 수정)
// ─────────────────────────────
define('UNIQID_CLEANUP_DAYS_NOITEM', 2); // 상품이 없을 때 삭제 기준 (일)
define('UNIQID_CLEANUP_DAYS_HASITEM', 30); // 상품이 있을 때 삭제 기준 (일)
define('UNIQID_CLEANUP_LOG_MAXSIZE', 1048576); // 로그 최대 크기 1MB
// 디렉토리 보장
@mkdir(G5_DATA_PATH . '/cache', G5_DIR_PERMISSION, true);
@mkdir(G5_DATA_PATH . '/log', G5_DIR_PERMISSION, true);
// 하루 1회만 실행되도록 캐시파일 이용
$uniqid_cleanup_flag_file = G5_DATA_PATH . '/cache/uniqid_cleanup.flag';
$uniqid_cleanup_today = date('Y-m-d');
// 오늘 이미 실행했는지 확인
if (!file_exists($uniqid_cleanup_flag_file) || trim(@file_get_contents($uniqid_cleanup_flag_file)) !== $uniqid_cleanup_today) {
// 실행 날짜 기록
@file_put_contents($uniqid_cleanup_flag_file, $uniqid_cleanup_today);
// 테이블명 결정
$uniqid_cleanup_table = isset($g5['uniqid_table']) ? $g5['uniqid_table'] : G5_TABLE_PREFIX.'uniqid';
// 쇼핑몰 상품 존재 여부 확인
$uniqid_cleanup_shop_item_table = isset($g5['g5_shop_item_table']) ? $g5['g5_shop_item_table'] : G5_TABLE_PREFIX.'shop_item';
$uniqid_cleanup_item_count = (int)sql_fetch_value("SELECT COUNT(*) FROM `{$uniqid_cleanup_shop_item_table}`");
// 상품 개수에 따라 삭제 기준 일수 설정
$uniqid_cleanup_days = ($uniqid_cleanup_item_count > 0) ? UNIQID_CLEANUP_DAYS_HASITEM : UNIQID_CLEANUP_DAYS_NOITEM;
$uniqid_cleanup_expire_id = (int)date('Ymd00000000', strtotime("-{$uniqid_cleanup_days} days"));
// ─────────────────────────────
// 1. 기간 경과 데이터 삭제
// ─────────────────────────────
$uniqid_cleanup_del_sql = "DELETE FROM `{$uniqid_cleanup_table}` WHERE `uq_id` < {$uniqid_cleanup_expire_id}";
sql_query($uniqid_cleanup_del_sql, false);
// ─────────────────────────────
// 2. 테이블 최적화 (공간회수)
// ─────────────────────────────
$uniqid_cleanup_opt_sql = "OPTIMIZE TABLE `{$uniqid_cleanup_table}`";
sql_query($uniqid_cleanup_opt_sql, false);
// ─────────────────────────────
// 3. 로그 기록 (1MB 초과 시 초기화)
// ─────────────────────────────
$uniqid_cleanup_log_path = G5_DATA_PATH . '/log/uniqid_cleanup.log';
if (file_exists($uniqid_cleanup_log_path) && filesize($uniqid_cleanup_log_path) > UNIQID_CLEANUP_LOG_MAXSIZE) {
@unlink($uniqid_cleanup_log_path);
@file_put_contents($uniqid_cleanup_log_path, "[".date('Y-m-d H:i:s')."] log reset (size > 1MB)\n");
}
// 로그 작성
$uniqid_cleanup_msg = sprintf("[%s] cleanup done — deleted uq_id < %s (%d days old), optimized table: %s, shop items: %d\n",
date('Y-m-d H:i:s'), $uniqid_cleanup_expire_id, $uniqid_cleanup_days, $uniqid_cleanup_table, $uniqid_cleanup_item_count);
@file_put_contents($uniqid_cleanup_log_path, $uniqid_cleanup_msg, FILE_APPEND);
}
9
댓글 7개
uniqid 테이블을 확인해 본 적이 없어서 뭐가 쌓이고 있는지는 모르겠지만 추후에 필요한 정보일 수도 있겠네요!!

감사합니다.

감사 합니다.
신고가 접수된 글입니다.
신고 횟수가 1회 이상이면 글을 확인하지 못합니다.
https://forum.kardiolo.pl/topic/76987-%EF%BD%83%EF%BD%8F%EF%BD%8D%EF%BD%90%EF%BD%8C%EF%BD%85%EF%BD%94%EF%BD%85%E2%84%A2-%EF%BD%8C%EF%BD%89%EF%BD%93%EF%BD%94-%EF%BD%8F%EF%BD%86-%EF%BD%8D%EF%BD%8F%EF%BD%8F%EF%BD%8E%EF%BD%90%EF%BD%81%EF%BD%99%C2%AE-%EF%BD%83%EF%BD%95%EF%BD%93%EF%BD%94%EF%BD%8F%EF%BD%8D%EF%BD%85%EF%BD%92%C2%A9-%EF%BD%93%EF%BD%85%EF%BD%92%EF%BD%96%EF%BD%89%EF%BD%83%EF%BD%85%E2%84%97-%EF%BD%83%EF%BD%8F%EF%BD%8E%EF%BD%94%EF%BD%81%EF%BD%83%EF%BD%94-%EF%BD%8E%EF%BD%95%EF%BD%8D%EF%BD%82%EF%BD%85%EF%BD%92%EF%BD%93-%E2%80%94-%EF%BC%92%EF%BC%94%EF%BC%8F%EF%BC%97-%EF%BD%8C%EF%BD%89%EF%BD%96%EF%BD%85-%EF%BD%90%EF%BD%85%EF%BD%92%EF%BD%93%EF%BD%8F%EF%BD%8E-%EF%BD%81%EF%BD%93%EF%BD%93%EF%BD%89%EF%BD%93%EF%BD%94%EF%BD%81%EF%BD%8E%EF%BD%83%EF%BD%85-%EF%BD%87%EF%BD%95%EF%BD%89%EF%BD%84%EF%BD%85/
https://forum.kardiolo.pl/topic/77002-%EF%BD%86%EF%BD%81%EF%BD%91%E2%80%99%EF%BD%93%E2%84%A2-%EF%BD%8C%EF%BD%89%EF%BD%93%EF%BD%94-%EF%BD%8F%EF%BD%86-%EF%BD%8D%EF%BD%8F%EF%BD%8F%EF%BD%8E%EF%BD%90%EF%BD%81%EF%BD%99%C2%AE-%EF%BD%83%EF%BD%95%EF%BD%93%EF%BD%94%EF%BD%8F%EF%BD%8D%EF%BD%85%EF%BD%92%C2%A9-%EF%BD%93%EF%BD%85%EF%BD%92%EF%BD%96%EF%BD%89%EF%BD%83%EF%BD%85%E2%84%97%EF%BD%83%EF%BD%8F%EF%BD%8E%EF%BD%94%EF%BD%81%EF%BD%83%EF%BD%94-%EF%BD%8E%EF%BD%95%EF%BD%8D%EF%BD%82%EF%BD%85%EF%BD%92%EF%BD%93-%E2%80%94%EF%BC%92%EF%BC%94%EF%BC%8F%EF%BC%97-%EF%BD%8C%EF%BD%89%EF%BD%96%EF%BD%85-%EF%BD%90%EF%BD%85%EF%BD%92%EF%BD%93%EF%BD%8F%EF%BD%8E-%EF%BD%81%EF%BD%93%EF%BD%93%EF%BD%89%EF%BD%93%EF%BD%94%EF%BD%81%EF%BD%8E%EF%BD%83%EF%BD%85-%EF%BD%87%EF%BD%95%EF%BD%89%EF%BD%84%EF%BD%85/
https://rhythmgamingworld.com/forums/topic/ultimate-guide-to-moonpay-customer-service-numbers-in-the-usa/
https://www.glassdoor.com/Community/new-york-city/to-contact-moonpay-customer-support-1-888-355-2348-us-use-the-support-request-form-or-the-247-phone-number-1-888-355-2348-us?__cf_chl_rt_tk=NCCZGamKG6bjNWMf3K4t7.FnjnnbXQS_yTCBZIsc6p8-1762442357-1.0.1.1-0H042jEgwLwY6Nyb0fba4CvuZY6d3KFYAmZCd20LqfM
https://rhythmgamingworld.com/forums/topic/complete-listof-moonpay-customer-service%e2%84%97-24-7-live-person/
https://rhythmgamingworld.com/forums/topic/complete-listof-moonpay-customer-service%e2%84%97-24-7/
https://rhythmgamingworld.com/forums/topic/how-to-moonpaycustomer-service-usa-contact-numbers-moonpayexpands-live/
https://rhythmgamingworld.com/forums/topic/main-list-of-moonpay-support-contact-numbers-in-us/

감사합니다 ^^
감사합니다.

감사합니다.