본문 바로가기

추천팁

OS X 메일 데이터베이스를 최적화하여 성능을 끌어 올리는 방법

OS X Mail 데이터베이스 최적화

맥 운영체제에 내장된 '메일(Mail)' 앱은 오래 사용할 수록 이메일, 첨부파일 내역을 기록하는 'SQLite' 데이터베이스 덩치가 점점 커집니다. 게다가 시간이 지날수록 데이터베이스에 빈 공간이 늘어나고 조각화가 심해지집니다.

이 때문에 메일 앱이 굼뜨게 움직이거나 메시지를 불러오는 데 더 많은 시간이 걸리곤 하는데요. 좀 더 쉽게 풀어서 말하면, 곳간은 나날이 쌓여가는데 여기저기 너저분하게 퍼질러 있어서 정작 필요한 물건을 찾는 데 많은 시간이 허비되는 것과 비슷합니다. 사실 버그라기 보다는 데이터베이스 관련 기술의 특성 또는 한계라고 할 수 있죠.

이에 오래 전부터 메일 앱의 데이터베이스를 정리해 성능 저하 원인을 제거하거나 완화시키는 방법이 알음알음 사용되고 있는데요. 메일 앱을 좀 더 빠르게 만들고 싶은 분이라면 한두 달에 한 번 정도 적용해 볼만 합니다. 저도 이 방법으로 틈틈히 최적화 작업을 해주고 있습니다.

기본적으로 sqlite 최적화 명령어인 'vacuum'을 사용해 메일 데이터베이스를 깨끗이 정리하는 원리인데요. 옴니그로울 개발자인 '호크 윙(Hawk Wings)'이 메일 앱에 적용되는 스크립트를 처음 만들었고, 이를 다시 NVAlt 개발자인 '브레타 터프스트라(Brett Terpstra)'가 다듬어 OS X 최신 버전에서 적용되고록 고쳐놓았습니다.

덕분에 프로그램 설치도 필요 없고 터미널 명령어 한 줄이면 됩니다. (소스코드는 여기서 볼 수 있습니다. 웹 개발자라면 어떤 내용인지 바로 이해하실 겁니다.)

적용 방법

주의 : 만에 하나 예기치 못한 문제가 발생할 수 있으므로, 타임머신 등의 백업 솔루션을 갖춘 분만 적용하시기 바랍니다.

0. 메일 앱이 실행 중이라면 먼저 종료합니다.

1. 응용 프로그램 > 유틸리티 폴더에 있는 '터미널(Terminal)'을 실행합니다.

2. 콘솔에 다음과 같이 명령어를 적어주고 엔터 키를 누르면 데이터베이스 색인에 대한 최적화 작업이 시작됩니다. 작에 소요되는 시간은 데이터 베이스 용량에 따라 차이가 날 수 있습니다. ▼

bash <(curl -s https://raw.githubusercontent.com/pbihq/tools/master/MailDBOptimiser.sh)

3. 작업이 완료되면 데이터베이스 색인 용량이 얼마나 줄어들었는지 보여줍니다. 두 달만에 스크립트를 돌렸는데 거의 색인 용량이 20% 가량 줄어들었습니다. ▼

4. 다시 메일 앱을 실행합니다.

코멘트

메일 앱에서 제공하는 '메일상자 재형성' 기능으로도 비슷한 효과를 볼 수 있지만, 이메일과 첨부파일을 받는데 상당한 시간이 소요되죠. 반면에 이 방법은 디스크에 이미 저장된 파일을 다루는 것이므로 속도 면에서 훨씬 효율적입니다. 그렇다고 데이터베이스 최적화 작업을 너무 자주 수행할 필요는 없습니다. (시스템 최적화에 들이는 들이는 노력과 시간이 성능 저하로 인한 손해보다 더 커서는 안 되겠죠.) 앞서 언급한 것처럼 한 두달에 한 번꼴로 틈틈히 해주시면 사뭇 빨리진 메일 앱을 만나실 수 있을 겁니다.



참조
Brett Terpstra - Vacuuming Mail.app on El Capitan
GitHub - MailDBOptimiser

관련 글
OS X 메일 앱 검색기능이 작동하지 않는 문제와 해결 방법
OS X Mail 앱 초기화 방법
OS X Spotlight 인덱스 재생성으로 해결할 수 있는 문제 유형