MySQL 학습 경험 선택하고 인덱스 튜닝·백업 설정·슬로우 쿼리 분석으로 DB 운영 경험 공유결
직접 운영한 데이터베이스는 MySQL입니다. 학습 프로젝트에서 웹 서비스의 사용자 데이터와 게시글을 저장하는 DB를 직접 설계하고 운영했습니다.
운영 중 가장 신경 쓴 부분은 인덱스 설계입니다. 데이터가 쌓이면서 쿼리 속도가 느려지는 시점이 생겼고, EXPLAIN으로 쿼리 실행 계획을 확인해서 풀 스캔이 발생하는 쿼리를 찾았습니다. 인덱스를 추가한 후 속도가 눈에 띄게 개선됐습니다.
두 번째 경험은 백업 설정입니다. 학습 환경이었지만 정기 백업 스크립트를 cron으로 설정해서 하루에 한 번 덤프 파일을 생성했습니다. 실수로 테이블을 삭제했을 때 백업에서 복구해본 경험이 있어서, 백업의 중요성을 실감했습니다.
문제 해결 관점에서는 슬로우 쿼리 로그 분석이 도움이 됐습니다. 느린 쿼리를 자동으로 기록하도록 설정해두면 어떤 쿼리가 성능 문제를 일으키는지 파악이 됩니다.