상품 옵션·재고 로딩 속도 2~5배 향상시키는 옵션 캐싱 기법
페이지 정보

본문
영카트 상품 상세페이지는 옵션을 불러올 때마다
g5_shop_item_option 테이블에 반복 쿼리를 날림.
상품 옵션이 많아지면 상세페이지 로딩 속도가 느려지고 서버 부하가 증가함.
이를 해결하기 위한 실무 기법이 옵션 캐싱(Option Caching).
1) 옵션 데이터를 캐시에 저장하기 (itemoption.php 수정)
$cache_key = 'item_option_' . $it_id;
$cache_time = 300; // 5분
if(function_exists('apcu_fetch') && $opt = apcu_fetch($cache_key)) {
$item_option = $opt;
} else {
$sql = "SELECT * FROM {$g5['g5_shop_item_option_table']}
WHERE it_id = '$it_id' ORDER BY io_no ASC";
$item_option = sql_query($sql);
if(function_exists('apcu_store')) {
apcu_store($cache_key, $item_option, $cache_time);
}
}
2) 구매 시 재고 감소 후 캐시 삭제하기 (orderupdate.php)
$cache_key = 'item_option_' . $it_id;
if(function_exists('apcu_delete')) {
apcu_delete($cache_key); // 재고 변경되면 캐시 무효화
}
3) 효과
옵션이 많을수록 상세페이지 속도 최대 2~5배 향상
APCu가 없다면 파일 캐시로도 가능
데이터 변경 시 캐시 자동 삭제 → 데이터 불일치 방지
트래픽 많은 쇼핑몰에서 효과가 큼 (세트상품·대량옵션 쇼핑몰 등)
- 다음글카테고리 쉽게 고르기 4차까지 23.05.14
댓글목록
등록된 댓글이 없습니다.








