글을 100편 썼는데 데이터베이스는 그보다 훨씬 크게 자라 있습니다. 백업이 오래 걸리기 시작하고, 관리자 화면이 무거워지고, 이전 작업이 부담스러워집니다. 이상한 일이 아닙니다 — 데이터베이스에 쌓이는 것의 대부분은 우리가 쓴 글이 아니기 때문입니다.
이것은 워드프레스의 결함이 아니라 편의의 대가입니다. 되돌리기 · 임시 저장 · 기록은 모두 필요해서 있는 기능이고, 다만 정리하는 주체가 없으면 계속 쌓입니다.
무엇이 쌓이는가
리비전은 글을 저장할 때마다 이전 판을 통째로 보관합니다. 긴 글을 여러 번 다듬으면 한 편이 수십 개의 판을 갖게 됩니다. 되돌리기에는 훌륭하지만 100편이 각각 30판을 갖고 있다면 사실상 3,000편 분량이 저장돼 있는 셈입니다.
트랜지언트는 “잠깐만 들고 있을 데이터” 입니다. 만료 시각이 함께 저장되는데, 만료됐다고 자동으로 지워지지는 않습니다. 만료된 채 남은 것들이 시간이 지나며 상당한 덩어리가 됩니다.
지운 플러그인의 흔적도 흔합니다. 플러그인을 삭제해도 그것이 만든 표와 설정은 남는 경우가 많습니다. 잘 만든 플러그인은 삭제 시 정리하지만, 전부가 그렇지는 않습니다.
커지면 실제로 무엇이 나빠지나
체감은 대개 이 순서로 옵니다. 먼저 백업 시간이 길어지고, 다음으로 관리자 화면이 무거워지고, 마지막으로 이전과 복구가 부담스러워집니다.
특히 마지막이 중요합니다. 복구가 오래 걸리는 상태는 사고가 났을 때의 손실 시간과 직결됩니다. 평소에는 아무 문제가 없다가, 가장 급한 순간에만 대가를 치르는 종류의 부채입니다.
또 하나, 항상 함께 읽히는 설정값들이 커지면 모든 요청이 조금씩 느려집니다. 한 요청에서는 미미하지만 전체에 걸리기 때문에 누적되면 눈에 보입니다.
정리 순서 — 백업이 먼저입니다
데이터베이스 정리는 지우는 작업이고, 지운 것은 되돌아오지 않습니다. 반드시 파일과 데이터베이스를 함께 백업한 뒤 시작합니다. 그리고 한 번에 전부 지우지 말고 한 항목씩 처리하면서 사이트가 정상인지 확인합니다 — 문제가 생겼을 때 원인이 특정됩니다.
정리보다 중요한 것은 재발 방지입니다. 리비전은 글당 보관 개수를 제한할 수 있고, 휴지통은 자동 비움 주기를 정할 수 있습니다. 한 번 정리하고 설정을 그대로 두면 몇 달 뒤 같은 작업을 다시 하게 됩니다.
데이터베이스와 성능의 관계를 더 다루는 글은 성능 최적화 아카이브에 있고, 정리와 함께 캐시 · 서버 설정까지 한 번에 정비하려면 최적화 지원 사업에 포함돼 있습니다.
다음 회차
정리 작업을 라이브 사이트에서 직접 하는 것이 불안하셨다면, 그 감각이 맞습니다. 다음 회차는 테스트 사이트가 필요해지는 시점입니다.