본문 바로가기
컴퓨터

👨‍💻 [MySQL] MySQL의 메모리 설정은 어떻게 하나요?

by 밝음의기둥 2025. 4. 11.
반응형

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


👨‍💻 안녕하세요, 윌리 프로젝트의 윌리 입니다.

MySQL의 메모리 설정은 어떻게 하는지 간략히 알아보았습니다.


질문 >

MySQL의 메모리 설정은 어떻게 하나요?

답변 >

MySQL에서 메모리 설정은 성능에 큰 영향을 미치며, 주로 버퍼, 캐시, 임시 테이블, 정렬 등을 위한 설정이 포함됩니다. 아래는 자주 조정되는 주요 메모리 관련 설정 항목과 설명입니다:


🔧 MySQL 메모리 관련 주요 설정

1. innodb_buffer_pool_size

  • 역할: InnoDB 테이블의 데이터와 인덱스를 캐싱
  • 추천 설정: 전체 메모리의 60~80% (전용 서버일 경우)
  • 예시:
innodb_buffer_pool_size = 4G

2. innodb_log_buffer_size

  • 역할: 트랜잭션 커밋 전 로그 버퍼
  • 추천 설정: 16M~256M, 대용량 트랜잭션 빈번할 경우 증가
  • 예시:
innodb_log_buffer_size = 64M

3. query_cache_size (MySQL 5.7 이하에서만 사용 가능)

  • 역할: 실행된 SELECT 결과를 캐시 (MySQL 8.0에서 제거됨)
  • 주의: 병목 원인 될 수 있어 최신 MySQL에서는 비활성화 권장
  • 예시:
query_cache_size = 0
query_cache_type = 0

4. tmp_table_size / max_heap_table_size

  • 역할: 메모리 내 임시 테이블 최대 크기
  • 설명: SQL 실행 중 ORDER BY, GROUP BY 등 임시 테이블 사용 시 메모리 한도
  • 예시:
tmp_table_size = 256M
max_heap_table_size = 256M

5. sort_buffer_size

  • 역할: 정렬 연산 시 사용하는 메모리 버퍼 (스레드당 할당)
  • 예시:
sort_buffer_size = 4M

6. join_buffer_size

  • 역할: 조인 시 테이블 스캔을 위한 버퍼 (스레드당 할당)
  • 예시:
join_buffer_size = 4M

7. read_buffer_size / read_rnd_buffer_size

  • 역할: 테이블 스캔(read) 및 랜덤 읽기 시 버퍼
  • 예시:
read_buffer_size = 2M
read_rnd_buffer_size = 4M


📍 참고사항

  • 스레드 기반 메모리 (sort_buffer_size 등) 은 접속 수에 따라 전체 메모리 사용량이 급증할 수 있으니 적절히 조절 필요.
  • 전체 예상 메모리 사용량 계산:
Total = global_buffer + (per_thread_buffer * max_connections)


📁 설정 파일 위치

설정은 일반적으로 my.cnf 또는 my.ini 파일에서 설정합니다:

  • 리눅스: /etc/my.cnf, /etc/mysql/my.cnf
  • 윈도우: C:\\ProgramData\\MySQL\\MySQL Server X.Y\\my.ini


🎬 유튜브 채널 🎬

 

위로그@WiLog

📢 안녕하세요, 위로그@WiLog 시청자 여러분, 저는 윌리(Willee) 입니다. 📢 위로그@WiLog 는 자기계발을 목적으로 하는 채널 입니다. 📢 오늘도 즐겁게~ 자신을 위한 계발을 함께 해보아요~ d^_^b 📌

www.youtube.com

🎬 치지직 채널 🎬

 

위로그 채널 - CHZZK

지금, 스트리밍이 시작됩니다. 치지직-

chzzk.naver.com


반응형