MySQL-쿼리 속도 테스트를 위해 캐시를 사용하지 마십시오
MySQL에서 일부 쿼리의 속도를 테스트하고 있습니다. 데이터베이스는 이러한 쿼리를 캐싱하여 이러한 쿼리의 속도를 테스트 할 때 신뢰할 수있는 결과를 얻기가 어렵습니다.
쿼리 캐싱을 비활성화하는 방법이 있습니까?
시스템 : Linux 웹 호스팅의 MySQL 4, PHPMyAdmin에 액세스 할 수 있습니다.
감사
쿼리에서 SQL_NO_CACHE (MySQL 5.7) 옵션을 사용해보십시오 . (MySQL 5.6 사용자는 여기를 클릭하십시오 )
예.
SELECT SQL_NO_CACHE * FROM TABLE
이렇게하면 MySQL 캐싱 결과가 중지되지만 다른 OS 및 디스크 캐시도 성능에 영향을 줄 수 있습니다. 이것들은 돌아 다니기가 더 어렵습니다.
현재 연결에만 영향을 미치는 다른 대안 :
SET SESSION query_cache_type=0;
현재 날짜 / 시간에 대한 참조는 해당 선택에 대한 쿼리 캐시를 비활성화합니다.
SELECT *,NOW() FROM TABLE
"MySQL 쿼리 캐시 사용을위한 전제 조건 및 참고 사항"@ http://dev.mysql.com/tech-resources/articles/mysql-query-cache.html을 참조하십시오.
구성 옵션도 있습니다 : query_cache_size = 0
서버 시작시 쿼리 캐시를 비활성화하려면 query_cache_size 시스템 변수를 0으로 설정하십시오. 쿼리 캐시 코드를 비활성화하면 눈에 띄는 오버 헤드가 없습니다. 소스에서 MySQL을 빌드하는 경우 --without-query-cache 옵션으로 configure를 호출하여 쿼리 캐시 기능을 서버에서 완전히 제외 할 수 있습니다.
http://dev.mysql.com/doc/refman/5.1/en/query-cache.html을 참조 하십시오
follow 명령을 실행하여 쿼리 캐시를 재설정 할 수도 있습니다.
RESET QUERY CACHE
한 가지 문제
SELECT SQL_NO_CACHE * FROM TABLE
방법은 쿼리 결과가 캐시되는 것을 막는 것 같습니다. 그러나 테스트하려는 쿼리에 적극적으로 사용중인 데이터베이스를 쿼리하는 경우 다른 클라이언트가 쿼리를 캐시하여 결과에 영향을 줄 수 있습니다. 나는이 문제를 계속 연구하고 있으며,이 게시물을 알아 내면이 게시물을 편집 할 것입니다.
나는 다음을 사용한다 :
SHOW VARIABLES LIKE 'query_cache_type';
SET SESSION query_cache_type = OFF;
SHOW VARIABLES LIKE 'query_cache_type';
쿼리 내에서 사용자 정의 변수를 사용하면 쿼리를 다시 캐시 할 수 없습니다. 나는 그것을 사용하는 것보다 훨씬 더 좋은 지표를 찾았습니다 SQL_NO_CACHE
. 그러나 변수 설정이 성능에 크게 영향을 미치지 않는 곳에 변수를 배치해야합니다.
SELECT t.*
FROM thetable t, (SELECT @a:=NULL) as init;
쿼리 캐시를 비활성화하려면 mysql 구성 파일에서 'query_cache_size'를 0으로 설정하십시오. 설정이 0이면 mysql은 쿼리 캐시를 사용하지 않습니다.
참고 URL : https://stackoverflow.com/questions/181894/mysql-force-not-to-use-cache-for-testing-speed-of-query
'Programing' 카테고리의 다른 글
권한이 충분하지 않아 구성 파일을 읽을 수 없습니다 (0) | 2020.03.06 |
---|---|
SQL Server-업데이트시 내부 조인 (0) | 2020.03.06 |
몽구스에서 문서를 어떻게 업데이트 / 업데이트합니까? (0) | 2020.03.06 |
jquery 변경 클래스 이름 (0) | 2020.03.06 |
mysql에 원격 연결을 허용하는 방법 (0) | 2020.03.06 |