>  기사  >  데이터 베이스  >  MySQL 성능을 최적화하기 위해 table_cache 구성 매개변수를 사용하는 방법

MySQL 성능을 최적화하기 위해 table_cache 구성 매개변수를 사용하는 방법

伊谢尔伦
伊谢尔伦원래의
2017-05-30 14:44:231470검색

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

이 매개변수가 매우 정확하지 않은 경우 VPS 관리 백과사전에서는 매우 보수적인 설정 제안을 제공합니다. MySQL 데이터베이스를 프로덕션 환경에 놓고 일정 기간 동안 시험 실행해 보세요. 그런 다음 매개변수 값을 Opened_tables 값보다 크게 조정하고 상대적으로 부하가 높은 극단적인 조건에서도 여전히 Opened_tables보다 약간 큰지 확인합니다.

캐시 지우기

mysql > flush tables;

명령을 실행하면 현재 캐시된 테이블이 모두 지워집니다.

위 내용은 MySQL 성능을 최적화하기 위해 table_cache 구성 매개변수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.