WordPress 웹사이트의 데이터베이스는 모든 것을 뒷받침하는 엔진과 같습니다. 콘텐츠 저장부터 사용자 상호작용 처리까지 모든 것을 담당합니다. 하지만 적절한 관리를 하지 않으면 데이터베이스가 복잡해지고 비효율적으로 변해 느린 로딩 속도, 오류, 심지어 서비스 중단과 같은 문제가 발생할 수 있습니다.
초보자든 경험 많은 웹사이트 소유자든 데이터베이스 최적화는 웹사이트의 전반적인 건강과 성능을 보장하는 데 필수적입니다. 이 가이드에서는 데이터베이스 최적화의 중요성을 살펴보고, 데이터베이스를 깨끗하고 원활하게 유지하는 실질적인 방법을 안내합니다.
데이터베이스는 많은 양의 정보를 저장할 수 있습니다. 모든 게시물, 페이지, 댓글, 메뉴, 그리고 웹사이트의 모든 텍스트 데이터가 포함됩니다. 웹사이트가 발전할수록 데이터베이스도 커집니다. 그 결과? 스팸 댓글, 임시 저장글, 중복 테이블, 닫힌 파일이나 임시 파일 등 불필요한 항목이 많은 '복잡한' 데이터베이스가 됩니다. 비대해진 데이터베이스는 성능 저하부터 웹사이트 안정성 문제까지 다양한 영향을 미칠 수 있습니다.
참고: 데이터베이스 크기는 EasyWP 구독의 전체 디스크 공간과 관련이 없습니다. 한 웹사이트당 허용되는 최대 데이터베이스 크기는 3GB입니다.
더 빠르고 보안이 강화된 웹사이트를 경험할 수 있도록 데이터베이스 구성을 지속적으로 개선하고 있습니다. 하지만 추가 제한이 필요하지 않도록 데이터베이스를 효과적으로 관리하는 것도 중요합니다.
가끔 데이터베이스 리소스가 과도하게 사용될 경우, 법률 및 악용 방지팀의 조사를 받게 됩니다. 데이터베이스가 최적화되지 않는 데에는 여러 가지 이유가 있습니다. 예를 들면:
중복된 데이터베이스 레코드
대용량 데이터베이스 테이블
복잡한 데이터베이스
동시 데이터베이스 요청량이 많음
해킹된 웹사이트
데이터베이스에 접근하고 테이블을 검토하려면 MySQL 데이터베이스를 관리할 수 있는 도구인 phpMyAdmin을 사용할 수 있습니다. 데이터베이스에 접속한 후 다음 단계를 따르세요:
1. 왼쪽 패널에서 데이터베이스를 선택하여 테이블 목록을 확인하세요:

2. “크기” 탭을 선택하여 테이블을 내림차순으로 정렬하면 가장 큰 테이블을 먼저 볼 수 있습니다:

3. 데이터베이스 테이블의 전체 크기는 아래 오른쪽에 계산되어 표시됩니다:

참고: 여러 페이지에 걸쳐 많은 테이블이 표시되는 경우(위와 같이), 각 페이지의 합계를 따로 계산해야 합니다. 데이터베이스 전체 크기 계산에 어려움이 있다면 Spaceship 고객 지원에 문의하세요.
데이터베이스 테이블 크기 평가 외에도, 웹사이트 데이터베이스를 깨끗하고 최적화된 상태로 유지할 수 있는 유용한 플러그인을 검토할 수 있습니다.
이 가이드는 사용자 정지 가능성을 줄이기 위한 데이터베이스 최적화 팁을 제공합니다. 하지만 호스팅 제공업체로서, 법률 및 악용 방지팀의 판단에 따라 필요한 경우 사용자 정지를 완전히 방지하거나 성공적인 결과를 보장할 수는 없습니다.
변경을 진행하기 전에 웹사이트 백업을 수행하는 것을 권장합니다.
WordPress 코어 버전, 테마, 플러그인 등 웹사이트 구성 요소를 항상 최신 상태로 유지하세요.
타사 캐싱 플러그인 사용을 피하세요. EasyWP에는 자체 내장 캐싱이 제공됩니다. 외부 캐싱 플러그인은 이 설정에 영향을 줄 수 있으며, 잦은 데이터베이스 쿼리 등 다양한 문제를 유발할 수 있습니다.
필요에 따라 최적화, 백업, SEO 플러그인의 설정을 검토하고 조정하세요.
웹사이트의 전반적인 보안을 신경 쓰세요.
아래 방법으로 데이터베이스 문제를 해결할 수 없다면, 웹 리소스와 포럼을 활용하거나 데이터베이스 관리자 전문가 또는 웹 전문가에게 문의하는 것을 고려하세요.
WordPress 플러그인은 웹사이트의 기능을 확장하는 훌륭한 방법입니다. 하지만 데이터베이스에 여러 레코드를 생성해 데이터베이스가 크게 증가할 수 있습니다. WP Reset 플러그인의 무료 버전이 그 예로, 클라우드 저장소 대신 현재 데이터베이스에 백업을 생성합니다. 중복된 테이블은 다음과 같이 표시됩니다:
26M zvqzsx_wp_posts
26M zixfga_wp_posts
26M xhljor_wp_posts
26M vqikba_wp_posts
26M uimtnb_wp_posts
타사 플러그인에서 이와 같은 문제가 발생하지 않도록, EasyWP Manager를 통해 WordPress 웹사이트를 백업하는 것을 권장합니다.
팁: WP Reset 플러그인을 사용하려면 데이터베이스에 3개 이상의 백업 버전을 저장하지 않는 것이 좋습니다. 또는 추가 버전을 삭제하고 클라우드 저장소 백업(프로 버전 전용)을 활성화하세요.
WP Reset 플러그인을 비활성화하거나 제거하는 것은 데이터베이스 크기 문제를 해결하는 첫 단계일 뿐입니다. 플러그인을 비활성화하거나 설정을 최적화하는 것 외에도, 데이터베이스를 수동으로 정리하거나 데이터베이스 관리 플러그인을 사용하는 것이 좋습니다.
WordPress 웹사이트를 큰 도서관에 비유해 보세요. 그 도서관에서 가장 중요한 책들이 바로 '게시물'입니다. 이 게시물들은 'wp_posts 테이블'이라는 특별한 공간에 잘 보관되어 있습니다. 웹사이트에 게시물이 많아지면 이 테이블이 금방 복잡해질 수 있습니다.
때로는 Autoptimize와 같은 특정 도구나 애드온이 웹사이트의 일부 동작 방식을 재구성해 데이터베이스의 다른 부분인 'wp_postmeta'에 더 많은 '레코드'를 저장하게 만들 수 있습니다. 이 외에도, Advanced Custom Fields나 WP Review와 같은 플러그인, 또는 맞춤 색상이나 폼이 있는 특수 테마 등도 이 'wp_postmeta' 영역을 채우는 데 기여할 수 있습니다.
WordPress 웹사이트의 백엔드를 살펴보면 다음과 같은 내용을 볼 수 있습니다:
'wp_postmeta'에 8.5기가바이트의 데이터'
'wp_posts'에 3.1기가바이트'
'wp_options'에 11메가바이트'
걱정하지 마세요. 이는 여러분의 도서관이 웹사이트를 독특하게 만드는 다양한 요소로 잘 채워져 있다는 의미입니다. 위와 같은 상황이 발생하면 다음 단계를 수행하는 것이 좋습니다:
Autoptimize, Advanced Custom Fields, WP Review와 같은 플러그인을 사용 중이라면 데이터베이스를 비대하게 만들지 않는 대체 플러그인을 선택하거나, 사용하지 않는 경우 플러그인을 비활성화하는 것을 고려하세요.
WordPress 테마를 변경해 보세요.
사용하지 않는 커스텀 필드를 수동으로 정리하세요.
WordPress 내에는 웹사이트에 표시되지 않지만 데이터베이스 공간을 차지하는 요소들이 있습니다. 웹사이트 관리자로서 중요하지 않을 수 있지만, 여전히 존재하며 데이터베이스를 불필요하게 복잡하게 만들 수 있습니다. 대표적인 예시는 다음과 같습니다:
게시물 수정본
보관된 페이지 및 댓글
스팸 댓글
사용하지 않는 태그
휴지통 항목
복잡한 데이터베이스를 해결하려면 다음 조치를 취하는 것이 좋습니다:
스팸 댓글을 제거하려면 Akismet 또는 WP Bulk Delete와 같은 플러그인을 사용하세요. 자세한 가이드는 WordPress에서 스팸 댓글을 빠르게 일괄 삭제하는 방법을 참고하세요.
게시물 수정본은 각 게시물을 편집하여 개별적으로 삭제하거나, WP Bulk Delete와 같은 플러그인을 사용해 대량 삭제할 수 있습니다. 또한, WP Revisions Control 또는 Disable Post Revision과 같은 플러그인을 사용하거나 wp-config.php 파일에 특별한 줄을 추가해 최대 수정본 개수를 제한하는 것도 권장합니다:
# 게시물당 수정본 개수를 10개로 제한하려면
define( 'WP_POST_REVISIONS', 10 );
# 게시물 수정본을 완전히 비활성화하려면
define( 'WP_POST_REVISIONS', false );
3. 보관된 게시물, 사용하지 않는 미디어, 태그, 게시물 관계를 수동으로 삭제하세요. 이 옵션은 대형 사이트보다는 소규모 웹사이트에 더 적합합니다.
웹사이트가 느려지기 시작하면 데이터베이스에 너무 많은 요청이 몰릴 수 있습니다. 이 경우, 지원팀이 웹사이트 설정을 조정해 요청 수를 줄이는 데 도움을 드릴 것입니다. 웹사이트의 데이터베이스 요청을 확인하려면 Query Monitor를 사용해 데이터베이스 쿼리를 디버깅할 수 있습니다. 자세한 정보는 여기에서 확인하세요.
새 플러그인을 사용하기 전에 반드시 WordPress 사이트를 백업하시기 바랍니다. 아래는 데이터베이스 관리 플러그인 목록입니다. 사용 전 플러그인 설명을 꼭 읽어 데이터 손실이나 문제를 방지하세요.
Advanced Database Cleaner
게시물과 댓글 삭제에 탁월한 Advanced Database Cleaner는 무료 버전에도 다양한 기능이 있습니다. 유료 프로 버전에는 예약 사이트 정리, 데이터베이스 테이블 삭제 등 유용한 기능이 포함되어 있습니다. 자세한 정보는 여기에서 확인하세요.
Advanced WP Reset
이 강력한 플러그인은 이전에 생성한 모든 웹사이트를 초기 상태로 재설정할 수 있습니다. Advanced WP Reset을 사용하면 모든 플러그인, 테마, 게시물, 페이지를 삭제하고 웹사이트의 'uploads' 폴더도 비울 수 있습니다. Advanced WP Reset 사용 시 반드시 백업을 준비하고 신중하게 사용하세요.
Database Cleaner
모든 크기의 데이터베이스를 지원하는 사용자 친화적인 WordPress 플러그인입니다. Database Cleaner의 무료 버전은 간단 모드와 전문가 모드를 모두 제공합니다. 정리 설정에서 성능 관련 옵션에 주의하세요. 삭제 배치 크기를 조정해 웹사이트 정리 시 CPU와 메모리 사용량을 최적화할 수 있습니다. 프로 버전에는 자동 정리 옵션 등 소소한 향상 기능도 포함되어 있습니다. 자세한 정보는 여기에서 확인하세요.
Optimize Database after Deleting Revisions
웹사이트의 모든 불필요한 요소를 한 번에 제거할 수 있는 간단한 원클릭 솔루션을 제공합니다. Optimize Database after Deleting Revisions는 다양한 기능을 갖추고 있습니다. 예를 들어, 작업 실행 전 데이터베이스의 현재 상태를 분석할 수 있습니다. 자세한 정보는 여기에서 확인하세요.
WP Sweep
웹사이트의 불필요한 요소를 부분적으로 정리하거나, 필요하다면 데이터베이스의 모든 테이블을 삭제할 수 있습니다. WP Sweep은 게시물, 댓글, 사용자, 옵션, 데이터베이스 테이블 등 다양한 요소를 삭제할 수 있는 강력한 도구입니다. 각 요소를 개별적으로 삭제하거나, 한 번의 클릭으로 전체 정리를 선택할 수도 있습니다.
Query Monitor
특정 쿼리를 생성하는 웹사이트 구성 요소를 추적하는 인기 플러그인으로, Query Monitor는 느린 쿼리, 평균 쿼리 실행 시간, 동시 쿼리 목록 등 유용한 통계를 제공합니다. SQL 쿼리량이 많은 웹사이트를 운영하며 어디서부터 문제를 해결해야 할지 모르는 고객에게 추천되는 플러그인입니다. Query Monitor 사용법이나 사이트에 WordPress Query Monitor 추가 방법에 대한 WPBeginner 가이드를 참고하세요.
Debug Bar
Debug Bar는 WordPress에서 매우 유용한 또 다른 디버깅 플러그인입니다. Query Monitor만큼 많은 기능은 없지만, 데이터베이스 쿼리, 훅, PHP 오류에 대한 기본 정보를 제공합니다. 가볍고 사용이 간편합니다.
WordPress 웹사이트의 데이터베이스를 최적화하는 것은 전반적인 건강, 성능, 사용자 참여를 유지하는 데 매우 중요합니다. 데이터베이스를 정기적으로 모니터링하고 정리하면 느린 로딩, 오류, 방문자 이탈과 같은 문제를 예방할 수 있습니다.
이 가이드에서 제시한 전략(웹사이트 구성 요소 업데이트, 플러그인 설정 조정, 데이터베이스 관리 및 모니터링 플러그인 활용 등)을 적용하면 데이터베이스를 최상의 상태로 유지할 수 있습니다.
잘 관리된 데이터베이스는 성공적인 WordPress 웹사이트의 기반입니다. 데이터베이스를 최적화하고 발생하는 문제를 적극적으로 해결하면 웹사이트가 탁월한 사용자 경험을 지속적으로 제공하고 온라인 존재감을 높일 수 있습니다. 올바른 도구와 정기적인 유지 관리로 WordPress 웹사이트를 오랫동안 원활하고 효율적으로 운영할 수 있습니다.