약 5 천만 개의 행이 있고 인덱스 크기가 4GB (테이블 크기가 약 6GB) 인 테이블을 쿼리하면 데이터베이스 서버가 메모리를 스왑하고 속도가 크게 저하되는 문제가 발생했습니다. 나는 이것이 임시 테이블 크기를 초과하고 디스크로 교체되는 것과 관련이 있다고 확신합니다.
데이터베이스 서버를 32GB RAM에서 64GB RAM으로 업그레이드 한 경우 MySQL 데이터베이스가이 추가 메모리를 완전히 활용할 수 있는지와 스왑이 아닌지 궁금합니다. 몇 가지 변수 (예 : KEY_BUFFER_SIZE 등)를 살펴본 결과 64GB 이상의 값 설정을 지원하는 것 같습니다. 그러나 MySQL 설명서에 따르면 tmp_table_size는 최대 4GB입니다.
그렇다면 메모리 업그레이드가 가치가 있습니까? "querying-large-table"문제가 이것으로부터 혜택을 받습니까, 아니면 4GB 제한 때문에 도움이되지 않습니까? 테이블을 다른 방식으로 분할하도록 재구성하는 것과 같은 다른 솔루션이있을 수 있지만 테이블에 대해 아무것도 변경하지 않으면 추가 메모리가 도움이됩니까?
또한 일반적으로 32GB에서 64GB RAM으로 이동할 때 MySQL이 이용할 수없는 다른 메모리 관련 변수가 있습니까?
우리는 데이터베이스 서버로 64 비트 리눅스 (우분투)를 사용하고 있습니다.
고마워, 갈렌