답변:
table_cache
가장 유용한 구성 지시문입니다. MySQL은 테이블에 액세스 할 때마다 테이블을 캐시에로드합니다. 테이블 수가 많으면 캐시하는 것이 더 빠릅니다.
다음을 실행하여 서버 변수를 살펴보십시오.
show status;
변수를 찾으십시오 open_tables
. 이것이 table_cache
값과 같고 opened_tables
계속 올라가면 table_cache
구성 파일 의 값 을 늘려야 합니다. 피크 타임 동안 이러한 변수를 실험하여 균형을 찾을 수 있습니다. 사용량이 많은 시간에 opened_tables
서버가 오랫동안 가동 된 후에도 적은 양이되도록 구성하려고합니다 .
key_buffer_size
실험하기 좋은 변수이기도합니다. 이 변수는 인덱스 버퍼 크기에 영향을 미치며이 변수를 더 크게 만들면 MySQL의 인덱스 처리 속도가 증가합니다. show variables;
명령으로 변수를 다시보고 비교할 key_read_requests
수 key_reads
있습니다. 이상적으로는이 두 변수 사이의 비율을 가능한 한 낮추고 싶고을 크기를 늘려서 수행 할 수 있습니다 key_buffer_size
. 이 변수를 더 높게 설정하면 디스크에서 직접 읽고 쓰는 횟수가 줄어 듭니다. 이것이 주요 관심사였습니다.
my.cnf
MySQL이 실행되는 동안 많은 값을 변경할 수 있지만 파일 에서 값을 변경 하고 MySQL을 다시 시작해야합니다 ( 'SET GLOBAL VARIABLE = value ').
당신은 아마 증가보고 싶을 것 key_buffer_size
, sort_buffer
, read_buffer
및 table_cache
우선 아마도 innodb_buffer_pool_size
당신이 어떤 InnoDB 테이블이있는 경우. 이러한 값 중 일부는 특히 하드웨어를 고려할 때 먼 길 (2 배까지도)을 늘릴 수 있습니다. MySQL의 기본값은 매우 보수적이며 약 10 년 전에 일반적인 혼합 사용 데스크톱을 목표로 한 것 같습니다. 32 비트 버전은 2GB 이상의 RAM을 사용하는 데 문제가있을 수 있습니다.
에서 봐 매뉴얼 MySQL의 자세한 내용 및 안내.
show status;
상태 변수를 참조하는 등Open_tables
및Opened_tables
.table_cache
최근 MySQL 버전에서 제거 된 것으로 보입니다.