2011-10-26 4 views
0

나는이 문제를 해결하기 위해 고심하고 있지만 지금까지 할 수 없었습니다. MyISAM 엔진을 사용하는 41 개의 테이블이있는 데이터베이스가 있습니다. 데이터베이스의 전체 크기는 현재 96.7MB입니다.MySQL 성능 튜닝

문제는 "MySQL 런타임 정보"가 매우 놀라운 통계를 보여줍니다. 이들은 :

Handler_read_rnd = 1,495K

Handler_read_rnd_next = 51M

Created_tmp_disk_tables 값 = 31K

Opened_tables이 = 나는 다음과 같은 값을 설정 한 217K

:

key_buffer_size = 768메가바이트

query_cache_type을 = 40메가바이트

table_cache = 800

tmp_table_size 변수 = 64메가바이트

sort_buffer_size = 20메가바이트

read_rnd_buffer_size = 6메가바이트

내 서버는 Linux에서 6GB RAM을 실행 중입니다. MySQL 서버가 2 일, 10 시간, 34 분, 14 초 동안 실행되도록 db 서버를 다시 시작했습니다.

이러한 성능 문제를 개선하기위한 제안이 있으십니까?

한 가지 더 질문 할 사항 : table_cache = 800 < - 800은 무엇인가, KB 또는 MB?

답변

2

my.cnf가 사용되고 있는지 확실합니까? show global variables를 사용하고 설정이 실제로 사용되고 있는지 확인하십시오.

최대 800까지는 캐시 될 테이블 핸들 수입니다.

설정과 결과가 주어지면 설정이 존중되지 않는 것으로 의심됩니다.

BTW 많은 MySQL 시스템 (복수형)을 구축하고 조정 한 지 오래 후 개인적인 조언은 InnoDB를 사용하는 것입니다. 장점 중 하나는 이상하고 단순한 노브를 사용하여 상자의 동작과 성능을 합리적으로 얻을 필요가 없다는 것입니다.

+0

+1 InnoDB 제안. –

+0

예레미야 감사합니다. 예, my.cnf 파일이 사용되고 있습니다. 매개 변수는 해당 파일에 정의되어 있습니다. 총 41 개의 테이블이 있다면 table_cache의 값은 80으로 충분해야합니다. 맞습니까? –