WordPress 자동화
Guest
STAGE 6 · Lv.30

데이터베이스 최적화와 클린업

테이블 최적화, 리비전 정리, 트랜지언트 삭제, 자동 저장 제거, 쿼리 최적화까지 WordPress 데이터베이스를 깨끗하고 빠르게 유지하는 방법을 배웁니다.

WordPress 데이터베이스 구조 이해
WordPress 핵심 테이블 12개
WordPress는 MySQL/MariaDB 데이터베이스를 사용하며, 기본 설치 시 12개의 테이블을 생성합니다. 각 테이블의 역할을 이해하면 어떤 데이터가 어디에 저장되는지 파악할 수 있고, 효과적인 최적화가 가능합니다. 시간이 지나면서 이 테이블들에 불필요한 데이터가 쌓이게 되며, 이는 사이트 성능 저하의 주요 원인이 됩니다.
테이블 용도 비대화 원인
wp_posts 글, 페이지, 리비전, 미디어 리비전, 자동 저장, 휴지통
wp_postmeta 포스트 메타 데이터 삭제된 플러그인의 잔여 메타
wp_options 설정값, 트랜지언트 만료된 트랜지언트, 삭제된 플러그인 옵션
wp_comments 댓글 스팸 댓글, 트래시 댓글
wp_commentmeta 댓글 메타 데이터 Akismet 등의 메타 데이터
wp_terms 카테고리, 태그 미사용 태그
wp_usermeta 사용자 메타 데이터 삭제된 플러그인의 사용자 메타
70%
일반적인 WordPress 사이트에서 불필요한 데이터 비율
1. 포스트 리비전 정리
리비전이란?
WordPress는 글을 저장할 때마다 이전 버전을 "리비전(Revision)"으로 보관합니다. 이는 실수로 내용을 삭제했을 때 복구하기 위한 기능이지만, 제한 없이 쌓이면 데이터베이스가 크게 비대해집니다.

예를 들어, 하나의 글을 50번 수정하면 50개의 리비전이 생깁니다. 100개의 글이 각각 50개의 리비전을 가지면 wp_posts 테이블에 5,000개의 추가 행이 생기고, 각 리비전의 메타 데이터도 wp_postmeta에 쌓입니다.

리비전 관리 전략:
- 리비전 수를 제한 (5-10개 권장)
- 오래된 리비전 정기적으로 삭제
- 자동 저장 간격 조절
// wp-config.php에서 리비전 제한 설정

// 리비전 개수 제한 (5개 권장)
define('WP_POST_REVISIONS', 5);

// 리비전 완전히 비활성화 (권장하지 않음)
// define('WP_POST_REVISIONS', false);

// 자동 저장 간격 변경 (초 단위, 기본 60초)
define('AUTOSAVE_INTERVAL', 120); // 2분으로 변경
-- SQL로 리비전 일괄 삭제 (phpMyAdmin에서 실행)

-- 주의: 반드시 백업 후 실행!

-- 모든 리비전 삭제
DELETE a, b, c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = 'revision';

-- 자동 저장(auto-draft) 삭제
DELETE FROM wp_posts
WHERE post_status = 'auto-draft';

-- 휴지통 비우기
DELETE a, b, c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_status = 'trash';
⚠ 데이터베이스 작업 전 필수 사항
데이터베이스를 직접 수정하기 전에 반드시 전체 데이터베이스 백업을 생성하세요! phpMyAdmin의 내보내기 기능이나 mysqldump 명령을 사용합니다. 잘못된 쿼리 하나가 전체 사이트를 망가뜨릴 수 있습니다. 플러그인을 사용한 안전한 방법을 우선 권장합니다.
🔒
여기까지는 미리보기입니다
데이터베이스 최적화와 클린업
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)