← 전체 목록
워드프레스운영

DB 최적화로 워드프레스 쿼리 속도를 30% 개선합니다

ℹ️ 본 글은 정보 제공 목적이며, 광고·제휴 링크가 포함될 수 있습니다.

워드프레스 데이터베이스 최적화의 필요성을 처음 실감한 건 5년 된 병원 사이트 DB 크기를 확인했을 때였습니다. 콘텐츠는 200개도 안 됐는데 DB가 450MB였습니다. 대부분은 포스트 리비전, 자동 저장 임시글, 스팸 댓글, 트랜지언트(임시 데이터)가 쌓인 것이었습니다. 정리 후 DB는 120MB로 줄었고, 일부 쿼리 응답이 빨라진 것을 느꼈습니다.

WP-Optimize 플러그인으로 간단하게 정리

WP-Optimize 플러그인이 가장 간편합니다.

  1. 플러그인 설치·활성화

  2. WP-Optimize → 데이터베이스

  3. 정리할 항목 선택:

    • 포스트 리비전 (Post revisions)
    • 자동 임시 저장 (Auto drafts)
    • 승인 대기 댓글
    • 스팸 댓글
    • 휴지통의 포스트
    • 고아 포스트 메타 데이터
    • 트랜지언트
  4. “실행” 버튼 클릭

실행 전 DB 백업은 필수입니다.

포스트 리비전 제한 설정

기본적으로 워드프레스는 글 저장할 때마다 리비전을 무제한으로 쌓습니다. wp-config.php에서 제한합니다.

// 포스트 리비전 최대 5개로 제한
define('WP_POST_REVISIONS', 5);

// 완전 비활성화 (리비전 없음)
// define('WP_POST_REVISIONS', false);

리비전이 무제한이면 하나의 글에 리비전이 수백 개 쌓이기도 합니다. 의료 정보 페이지처럼 자주 수정하는 콘텐츠에서 특히 심합니다.

MySQL에서 직접 정리

phpMyAdmin이나 MySQL 쉘에서 직접 정리할 수도 있습니다.

-- 포스트 리비전 삭제
DELETE FROM wp_posts WHERE post_type = 'revision';

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

-- 스팸 댓글 삭제
DELETE FROM wp_comments WHERE comment_approved = 'spam';

-- 만료된 트랜지언트 삭제
DELETE FROM wp_options WHERE option_name LIKE '_transient_%';
DELETE FROM wp_options WHERE option_name LIKE '_site_transient_%';

-- 테이블 최적화
OPTIMIZE TABLE wp_posts, wp_postmeta, wp_comments, wp_options;

OPTIMIZE TABLE 은 삭제된 데이터가 차지하던 공간을 재사용 가능하게 만들고 테이블을 정렬합니다. 큰 테이블에서는 시간이 걸릴 수 있으니 방문자가 적은 새벽 시간에 실행하세요.

분기마다 한 번씩 DB 정리를 루틴화하면 사이트 속도를 꾸준히 유지할 수 있습니다.

편집 정책

AI가 초안을 생성하고, 의료기관 인프라 운영자가 1차 데이터 기반으로 최종 검수·승인합니다.

작성·검수: WavePix 운영자 (의료기관 3곳 인프라 전담)