Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

my.cnf 파일로 MySQL 최적 성능 설정하는 방법

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 파일에서 버퍼 풀 크기와 로그 파일 크기를 조정하면 읽기·쓰기 성능을 모두 개선할 수 있습니다. 단, 서버의 실제 메모리 용량과 워크로드 특성을 고려해 신중하게 값을 결정하는 것이 중요합니다.