[SQL] 방법 / 플러시 MySQL의 InnoDB의 버퍼 풀을 지우려면?
SQL방법 / 플러시 MySQL의 InnoDB의 버퍼 풀을 지우려면?
나는 반환 한 튜닝 큰 쿼리 해요, 그리고 비교를 위해, 전후에 같은 기준에서 실행하고자합니다.
2 개 쿼리가 어쨌든 캐시되지 않을 것이기 때문에 나는 MySQL의 쿼리 캐시에 대해 알고 있지만, 나에게 그와 관련이없는.
캐시되는 내용, 버퍼 풀에서 InnoDB의 페이지입니다. 나도 같은 출발점에서 두 개의 쿼리를 비교할 수 있도록 전체 버퍼 풀을 취소 할 수있는 방법이 있습니까?
가능하면 각 쿼리를 실행 한 후 MySQL 서버를 다시 시작하면 의심의 여지 작품은 이드이 피해야 할 것 같은 동안
해결법
-
==============================
1.경고 : 다음은 MySQL을 5.5와 MySQL 작동 5.1.41+ (이노 플러그인)
경고 : 다음은 MySQL을 5.5와 MySQL 작동 5.1.41+ (이노 플러그인)
이러한 설정으로 InnoDB의 버퍼 풀의 항목 기간을 형식에 설정을 몇 :
SET GLOBAL innodb_old_blocks_time=250; // This is 0.25 seconds SET GLOBAL innodb_old_blocks_pct=5; SET GLOBAL innodb_max_dirty_pages_pct=0;
때 기본값으로 다시 설정, 테스트를 수행하고 있습니다 :
SET GLOBAL innodb_old_blocks_time=0; SET GLOBAL innodb_old_blocks_pct=37; SET GLOBAL innodb_max_dirty_pages_pct=90; // 75 for MySQL 5.5/MySQL 5.1 InnoDB Plugin
이러한 설정의 정의를 확인하세요
-
==============================
2.훨씬 더 간단 ...이 두 번 실행
훨씬 더 간단 ...이 두 번 실행
SELECT SQL_NO_CACHE ...;
그리고 두 번째 타이밍 봐.
BUFFER_POOL까지 첫 번째 따뜻하게; 두 번째는 SQL_NO_CACHE를 구비하여 QC를 피한다. (MySQL은 8.0에서 SQL_NO_CACHE 오프 휴가, 그것은 사라 졌어요.)
그래서 두 번째시기는 따뜻한 캐시와 생산 시스템에 걸리는 시간의 좋은 표시입니다.
핸들러 카운트에서 또한, 봐
FLUSH STATUS; SELECT ...; SHOW SESSION STATUS LIKE 'Handlers%';
감동되는 행의 비교적 명확한 그림을 제공합니다. 즉, 차례로, 당신에게 쿼리가 걸리는 많은 노력에 대한 좋은 느낌을 준다. 이 작은 데이터 세트에 매우 성공적으로 (빠르게)를 실행 할 수 있습니다. 그럼 당신은 (자주) 큰 데이터 세트를 추정 할 수 있습니다.
A "Handler_read은"인덱스 행 또는 데이터 행을 읽을 수 있습니다. 그것은 '다음'행 (따라서 아마 이전 행에 대해 읽은 블록에 캐시)을 수 있습니다, 또는 임의 (다른 디스크 히트에 따라서 가능하게 될) 수 있습니다. 즉,이 기술은 "얼마나 많은 블록하는 것이 필요하다"에별로 도움이되지 않습니다.
이 처리기 기술에 가고 다른 어떤 불 투과성; 그것은 일관된 결과를 제공합니다.
"Handler_write"는 TMP 테이블이 필요되었음을 나타냅니다.
테이블 (또는 다수의)의 행수 근사 숫자들은 아마도 테이블 검색 (들)를 나타낸다. LIMIT와 동일한 숫자는 그 자체로 한계를 소비하도록 좋은 인덱스를 만들 것을 의미 할 수 있습니다.
당신이 BUFFER_POOL을 세척 할 경우, 당신은 (?) 정확한을주는 Innodb_buffer_pool_reads의 변화를 감시 감기 시스템에서 읽은 페이지 수의 계산 할 수있다. 이것은 거의 항상 캐시되고있는 잎 이외의 인덱스 페이지를 포함 할 것이다. 다른 어떤 시스템에서 진행되는 경우는 '글로벌'이 아닌 '세션'이기 때문에,이 상태 값을 신뢰할 수 없습니다.
from https://stackoverflow.com/questions/10542853/how-to-clear-flush-mysql-innodb-buffer-pool by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 어떻게 SQL 데이터베이스 테이블에 날짜를 삽입? (0) | 2020.06.27 |
---|---|
[SQL] 디폴트 값으로 테이블에 열을 추가 기존 컬럼의 값과 동일 (0) | 2020.06.27 |
[SQL] PHP SQL SELECT 경우 여러 단어 검색 항목과 같은 (0) | 2020.06.27 |
[SQL] SSIS에 대한 권장 학습 재료를 무엇입니까? [닫은] (0) | 2020.06.27 |
[SQL] 가게 순위 위치로 MySQL의 업데이트 문 (0) | 2020.06.27 |