2010-07-09 8 views
0

로컬 mac dev 컴퓨터에서 mysql 쿼리 캐시를 해제하려고합니다.mac (macports install)에서 mysql 쿼리 캐시를 끌 수 없습니다.

나는 CL을 통해 시도했다 :

SELECT sql_no_cache; 
RESET query cache; 
SET SESSION query_cache_type = OFF; 

또한 설정에서 :

query-cache-type = 0 

내가 MacPorts를 통해 설치되어 있어야합니다. 약 10 개의 my.cnf 파일이 있으므로 어쩌면 정확한 편집을하지 못하고 있을까요?

/private/etc/my.cnf 
/Users/dj/Downloads/mysql-5.1.41-osx10.5-x86_64/mysql-test/suite/federated/my.cnf 
/Users/dj/Downloads/mysql-5.1.41-osx10.5-x86_64/mysql-test/suite/ndb/my.cnf 
/Users/dj/Downloads/mysql-5.1.41-osx10.5-x86_64/mysql-test/suite/rpl/my.cnf 

등 ...

나는 명령 줄 물건이 비록 일을해야한다고 생각합니다.

나는 온라인에서 찾은 모든 것을 사용해 보았습니다. 어떤 도움을 주셔서 감사합니다.

답변

0

sql_no_cache 사용하는 것은 모든 선택 진술 (검색어)을 추가하는 데 사용하는 것입니다.

같은 :

select sql_no_cache * from mytable; 

이 캐시되지 않을 것이라고 확신 할 수 있습니다. 그러나 하드 드라이브 나 컨트롤러 자체에서 빈번하게 사용되는 파일을 캐싱하는 운영 체제, mysql이 사용하는 저장소 엔진 (예 : innodb의 버퍼)에 이르기까지 테이블에서 데이터를 검색하는 과정에 관련된 다른 많은 캐시가 있습니다.

왜 쿼리를 캐시하지 않으시겠습니까?

벤치마킹의 경우 각 실행 전에 mysql 서버를 다시 시작하는 것이 좋습니다.

my.cnf는 /etc/my.cnf에 있어야합니다.

+0

mytable에서 select sql_no_cache *를 시도했지만 아직 확실히 캐싱 중입니다. 개발 목적으로 해제해야합니다. 나는 쿼리를 최적화하려고 노력하고 있는데, 이것은 캐시 된 것이 불가능합니다. 내 개발을 반복 할 때 각 실행 전에 mysql 서버를 다시 시작하는 것은 금지되어 있습니다. – djburdick

+0

'SET GLOBAL query_cache_size = 0;'시도해 보셨습니까? 또한 my.cnf를 수정하고 모든 종류의 버퍼를 작은 값 (innodb의 경우 innodb_buffer_pool_size, myisam의 경우 key_buffer_size)으로 설정할 수 있습니다. 사실 나는 그것을 직접 봤어 그리고 난 당신을 도울 것이라고 생각 : http://www.mysqlperformanceblog.com/2007/09/12/query-profiling-with-mysql-bypassing-caches/ – ceteras

관련 문제