MySQL 서버의 성능을 극대화하려면 설정 파일인 my.cnf(Windows 환경에서는 my.ini)를 적절히 구성하는 것이 중요합니다. 이 글에서는 설정 파일의 위치를 확인하고, 대표적인 성능 관련 옵션을 추가하는 방법을 단계별로 살펴봅니다.
1단계: my.cnf 파일 위치 확인
가장 먼저 my.cnf 파일이 어디에 있는지 찾아야 합니다. Windows 환경에서는 아래 쿼리를 실행하면 데이터 디렉터리 위치를 확인할 수 있으며, 설정 파일도 같은 경로 부근에 있습니다.
mysql> select @@datadir;
실행 결과
+---------------------------------------------+ | @@datadir | +---------------------------------------------+ | C:\ProgramData\MySQL\MySQL Server 8.0\Data\ | +---------------------------------------------+ 1 row in set (0.00 sec)
위 결과에서 볼 수 있듯이, MySQL 8.0의 데이터 디렉터리는 C:\ProgramData\MySQL\MySQL Server 8.0\Data\입니다. 일반적으로 설정 파일은 이 상위 디렉터리인 C:\ProgramData\MySQL\MySQL Server 8.0\에 my.ini 형태로 존재합니다.
2단계: my.cnf 파일 열기
텍스트 편집기(메모장, VS Code 등)를 관리자 권한으로 실행한 뒤 해당 경로의 my.cnf(my.ini) 파일을 엽니다. 파일에는 이미 여러 기본 설정 항목이 작성되어 있는 것을 확인할 수 있습니다.
3단계: 주요 성능 옵션 추가
InnoDB 버퍼 풀 크기 늘리기
더 많은 데이터를 메모리에 캐싱하여 읽기 성능을 높이고 싶다면 innodb_buffer_pool_size 값을 조정합니다. 이 값은 InnoDB가 테이블과 인덱스 데이터를 캐시하는 데 사용하는 메모리 영역의 크기를 의미하며, 일반적으로 서버 전체 메모리의 50~70% 수준으로 설정하는 것이 권장됩니다.
innodb_buffer_pool_size = 1024M
InnoDB 로그 파일 크기 늘리기
더 많은 쓰기 작업을 처리해야 한다면 innodb_log_file_size 값을 늘리는 것이 좋습니다. 이 값은 리두 로그(redo log) 파일의 크기를 결정하며, 값이 클수록 대량의 쓰기 작업 시 체크포인트 빈도가 줄어들어 쓰기 성능이 향상됩니다.
innodb_log_file_size = 512M
4단계: 설정 저장 및 적용
위 두 옵션을 my.cnf 파일의 [mysqld] 섹션 아래에 추가한 후 파일을 저장합니다. 변경 사항을 적용하려면 MySQL 서비스를 재시작해야 하며, 재시작 후에는 다음과 같이 변수가 정상적으로 반영되었는지 확인할 수 있습니다.
mysql> SHOW VARIABLES LIKE 'innodb_buffer_pool_size'; mysql> SHOW VARIABLES LIKE 'innodb_log_file_size';
이처럼 my.cnf 파일에서 버퍼 풀 크기와 로그 파일 크기를 조정하면 읽기·쓰기 성능을 모두 개선할 수 있습니다. 단, 서버의 실제 메모리 용량과 워크로드 특성을 고려해 신중하게 값을 결정하는 것이 중요합니다.