2012-05-12 4 views
2

응용 프로그램 용 MySQL 데이터베이스가 있지만 레코드 응답 시간이 늘어나서 데이터베이스에 mysql querycache를 사용하도록 설정했습니다. 문제는 항상 쿼리 캐시가 0이되도록 주 컴퓨터를 다시 시작하는 것입니다. 이 문제를 해결할 방법이 있습니까?mysql 쿼리 캐시

답변

2

레코드 수가 많아 질수록 쿼리 시간이 길어지면 테이블 인덱스를 평가할 차례입니다. 느린 쿼리 로그를 사용하도록 설정하고 느리게 실행되는 쿼리에 대해 설명을 실행하여 인덱스를 넣을 위치를 파악할 것을 제안합니다. 또한 무작위로 데이터베이스를 다시 시작하지 말고 근본 원인을 수정하십시오.

+0

감사합니다. 예, 테이블 색인을 평가해야합니다. "우리는 종종 주 기계를 다시 시작합니다"는 의미는 작동 후 우리가 종료 응용 프로그램은 독립 실행 형 하나입니다 mechine coz 하루 종일 그래서 ... mysql 쿼리 캐시를 사용하는 모든 지점이 있습니까 ?? 저 mechine에, 우리가 다음날에 그것을 trun 후에 coz. 0 mysql_query_cache는 0 –

+0

글쎄, 그게 달려있다. 하루에 두 번 이상 단일 쿼리를 실행하는 경우 쿼리 캐시를 사용하도록 설정할 수 있습니다. 모든 쿼리가 고유하면 아마 그렇지 않을 것입니다. – Daan

+0

느리게 실행되는 쿼리를 분석하고 올바른 위치에 인덱스를 적용하고 잘못 작성된 쿼리를 다시 작성하여 문제를 해결하면 문제를 해결할 수 있습니다. MySQL의 쿼리 캐시는 매우 지능적이지 않으며 동적 쿼리와 트랜잭션 쿼리에 도움이되지 않습니다. 절대 동적 쿼리를 실행하지 않으면 아래 제안 된대로 캐시를 예열하십시오. 나는 질의 캐시를 가지고있는 것에 반대하지 않는다. 그것은 바람직하고 도움이되지만, 느린 실행 질의가 본질적으로 동적이지 않은 한, 질의 캐시만으로는 문제를 해결할 수 없을 수도있다. –

1

시작 시간이 더 길어도 괜찮 으면 시작시 캐시 워밍업을 시도 할 수 있다고 생각합니다. 쿼리를 별도의 파일에 넣거나 (selects 묶음을 실행하는 저장 프로 시저를 만들고 그냥 호출하면됩니다. SP)를 입력 한 다음 경로를 지정하십시오 init_file 매개 변수 my.cnf