"MySQL에 할당된 메모리 양을 확인하십시오"라고 알릴 때 본 글
메모리 설정 방법은 덮어쓰지 않습니다. 설정하려면 참고 문장을 참고하십시오.
두루뭉술하게 말하다
전제 조건
확인 단계
【1단계】 스토리지 엔진의 종류 확인
MySQL은 스토리지 엔진에 따라 스토리지 사용 방법과 확인 항목이 달라집니다.
이번에는 대표적인 이노DB를 대상으로 다음과 같은 조회를 실시하여 저장 엔진이 이노DB인지 확인해 주십시오.
mysql
SHOW TABLE STATUS FROM データベース名;
각 테이블의 Engine 열 값은 InnoDB입니다.※ 저장 엔진이란
SQL 문을 수신하고 결과를 반환하는 데이터베이스 엔진 섹션
[STEP 2] 스토리지 크기 확인
1단계에서 스토리지 엔진이 InnoDB임을 확인하면 INNODBBUFFER_POOL_SIZE 값을 확인합니다.
mysql
SELECT @@GLOBAL.INNODB_BUFFER_POOL_SIZE/1024/1024 as メモリサイズ(単位:MB);
이 INNODBBUFFER_POOL_SIZE 값은 MySQL 전체에 사용할 수 있는 메모리 양입니다.INNODB_BUFFER_POOL_SIZE의 값 단위는 바이트이기 때문에 직접 얻으면 이해하기 어려우므로 1024로 나누어 조정하는 것이 좋다.
예는 MB(메가바이트)로, 1024를 더하면 GB(메가바이트)로 변환할 수 있다.
【3단계】로그 파일의 크기 확인
메모리 설정 확인을 의뢰받았을 때 처리가 느려 병목 조사를 목적으로 하는 경우가 많았다.
로그 파일 용량 부족 시 성능 저하
메모리 크기를 확인했다면 신중하게 로그 파일의 크기도 확인해야 한다.
mysql
SELECT @@GLOBAL.INNODB_LOG_FILE_SIZE/1024/1024 as ログファイルサイズ(単位:MB);
INNODB_LOG_FILE_SIZE 값은 1MB 이상 4GB 이하의 범위에서 타겟으로 INNODBBUFFER_POOL_SIZE의 4분의 1 정도로 설정하면 좋을 것 같아요.총결산
저도 예전에 MySQL의 메모리 설정을 확인하는 작업에서 같이 참석한 적이 있어요.
그가 무엇을 하는지 제대로 이해하지 못했기 때문에 좋은 기회였다.
강자가 남긴 검색어와
아래의 참고 보도 덕분에 점과 점이 연결되어 이해도를 높였다.
긴 검색어도 하나하나 꼼꼼하게 해석하면 의외로 간단하다.
(@@는 전역 변수입니다./1024는 단위 조정을 위한 것입니다. 조회가 길어 보이는 것은 as에서 열 이름 조정 등 때문입니다)
강자로부터 얻은 참고 조회
select
@@GLOBAL.KEY_BUFFER_SIZE as GLOBAL_KEY_BUFFER_SIZE,
@@GLOBAL.INNODB_BUFFER_POOL_SIZE as GLOBAL_INNODB_BUFFER_POOL_SIZE,
@@GLOBAL.INNODB_LOG_BUFFER_SIZE as GLOBAL_INNODB_LOG_BUFFER_SIZE,
@@GLOBAL.SORT_BUFFER_SIZE + @@GLOBAL.MYISAM_SORT_BUFFER_SIZE + @@GLOBAL.READ_BUFFER_SIZE + @@GLOBAL.JOIN_BUFFER_SIZE + @@GLOBAL.READ_RND_BUFFER_SIZE as THREAD_BUFFER_SIZE,
@@GLOBAL.KEY_BUFFER_SIZE + @@GLOBAL.INNODB_BUFFER_POOL_SIZE + @@GLOBAL.INNODB_LOG_BUFFER_SIZE + @@GLOBAL.NET_BUFFER_LENGTH
+ (@@GLOBAL.SORT_BUFFER_SIZE + @@GLOBAL.MYISAM_SORT_BUFFER_SIZE + @@GLOBAL.READ_BUFFER_SIZE + @@GLOBAL.JOIN_BUFFER_SIZE + @@GLOBAL.READ_RND_BUFFER_SIZE) * @@GLOBAL.MAX_CONNECTIONS AS TOTAL_MEMORY_SIZE,
(@@GLOBAL.KEY_BUFFER_SIZE + @@GLOBAL.INNODB_BUFFER_POOL_SIZE + @@GLOBAL.INNODB_LOG_BUFFER_SIZE + @@GLOBAL.NET_BUFFER_LENGTH
+ (@@GLOBAL.SORT_BUFFER_SIZE + @@GLOBAL.MYISAM_SORT_BUFFER_SIZE + @@GLOBAL.READ_BUFFER_SIZE + @@GLOBAL.JOIN_BUFFER_SIZE + @@GLOBAL.READ_RND_BUFFER_SIZE) * @@GLOBAL.MAX_CONNECTIONS)/1024 AS TOTAL_MEMORY_SIZE_kb,
(@@GLOBAL.KEY_BUFFER_SIZE + @@GLOBAL.INNODB_BUFFER_POOL_SIZE + @@GLOBAL.INNODB_LOG_BUFFER_SIZE + @@GLOBAL.NET_BUFFER_LENGTH
+ (@@GLOBAL.SORT_BUFFER_SIZE + @@GLOBAL.MYISAM_SORT_BUFFER_SIZE + @@GLOBAL.READ_BUFFER_SIZE + @@GLOBAL.JOIN_BUFFER_SIZE + @@GLOBAL.READ_RND_BUFFER_SIZE) * @@GLOBAL.MAX_CONNECTIONS)/1024/1024 AS TOTAL_MEMORY_SIZE_mb,
(@@GLOBAL.KEY_BUFFER_SIZE + @@GLOBAL.INNODB_BUFFER_POOL_SIZE + @@GLOBAL.INNODB_LOG_BUFFER_SIZE + @@GLOBAL.NET_BUFFER_LENGTH
+ (@@GLOBAL.SORT_BUFFER_SIZE + @@GLOBAL.MYISAM_SORT_BUFFER_SIZE + @@GLOBAL.READ_BUFFER_SIZE + @@GLOBAL.JOIN_BUFFER_SIZE + @@GLOBAL.READ_RND_BUFFER_SIZE) * @@GLOBAL.MAX_CONNECTIONS)/1024/1024/1024 AS TOTAL_MEMORY_SIZE_gb;
참고 문장
Reference
이 문제에 관하여("MySQL에 할당된 메모리 양을 확인하십시오"라고 알릴 때 본 글), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/magavel/articles/how-to-check-mysql-memory-size텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)