이 글에서는 주로 MySQL성능 최적화의 table_cache 구성 매개변수를 소개합니다. 이 글에서는 cache 메커니즘, 매개변수 최적화 및 캐시 지우기 명령 등을 소개합니다. 필요한 친구는
table_cache를 참조할 수 있습니다. 중요한 MySQL 성능 매개변수 5.1.3 이후 버전에서는 table_open_cache라고 합니다. table_cache는 주로 테이블 캐시 수를 설정하는 데 사용됩니다. 각 클라이언트 연결은 최소한 하나의 테이블에 액세스하므로 이 매개변수의 값은 max_connections와 관련됩니다.
캐싱 메커니즘
연결이 테이블에 액세스하면 MySQL은 현재 캐시된 테이블 수를 확인합니다. 테이블이 캐시에 이미 열려 있으면 쿼리 속도를 높이기 위해 캐시에 있는 테이블에 직접 액세스합니다. 테이블이 캐시되어 있지 않으면 현재 테이블이 캐시에 추가되어 쿼리됩니다. 캐시 작업을 수행하기 전에 table_cache는 캐시된 테이블의 최대 수를 제한하는 데 사용됩니다. 현재 캐시된 테이블이 table_cache에 도달하지 않으면 이 값에 도달하면 MySQL은 테이블을 기반으로 캐시합니다. 마지막 쿼리 시간에 쿼리 속도 및 기타 규칙에 따라 이전 캐시가 해제됩니다.
매개변수 조정일반적으로 그림과 같이 phpmyadmin에서 Open_tables 및 Opened_tables의 값을 확인하거나
mysql> show global status like 'open%_tables';
를 실행하여 현재 open_tables 상황을 확인할 수 있습니다.
이 두 매개변수 값을 확인하세요. 여기서 Open_tables는 현재 열려 있는 테이블 수이고 Opened_tables는 열려 있는 모든 테이블 수입니다.
Open_tables의 값이 table_cache의 값에 가깝고 Opened_tables가 계속해서 커지면 mysql이 새 테이블을 수용하기 위해 캐시된 테이블을 해제한다는 의미입니다. 이때 table_cache의 값을 늘려야 할 수도 있습니다. 대부분의 상황에서는
가 더 적합한 값입니다.
Open_tables / Opened_tables >= 0.85 Open_tables / table_cache <= 0.95
를 프로덕션 환경에 배치합니다. 일정 시간이 지난 후 매개변수 값을 Opened_tables 값보다 크게 조정하고 상대적으로 부하가 높은 극한 조건에서도 여전히 Opened_tables보다 약간 큰지 확인합니다.
캐시 지우기
mysql > flush tables;
명령을 실행하면 현재 캐시된 테이블이 모두 지워집니다.
위 내용은 mysql의 table_cache 구성 매개변수에 대한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!