MySQL DB 전체가 메모리에로드되었는지 어떻게 확인할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/144210

  •  02-07-2019
  •  | 
  •  

문제

MySQL 서버를 실행 중입니다. 어떻게 든 DB 전체가 RAM에로드되었는지 확인하고 싶습니다.

이것이 사실입니까? 그리고 어떻게 검증합니까?

도움이 되었습니까?

해결책

innodb를 사용하는 경우 innodb_buffer_pool_size를 데이터 및 색인만큼 큰 것으로 설정할 수 있습니다. 그런 다음 데이터에 액세스 할 때 메모리로 캐싱되며 모든 후속 액세스는 메모리를 통해 발생합니다.

데이터를 사전 캐시하려면 공통 쿼리 또는 전체 테이블/인덱스 스캔을 수행하여 모든 데이터를 메모리에로드하도록 강요 할 수 있습니다.

MySQLD에는 시작 파일 옵션이있어 서버가 시작시 일부 명령을 자동으로 실행할 수 있으며, 여기서 사전 캐싱 쿼리를 실행할 수 있습니다.

메모리가 부족하고 싶지 않기 때문에 Innodb_buffer_pool_size를 너무 크게 설정하는 데주의하십시오.

다른 팁

글쎄, 한 가지 옵션은 램 드라이브를 사용하는 것입니다. 비록 영구적이지는 않지만.

http://www.linuxforums.org/forum/misc/670-how-create-ram-drive-linux.html

(완전성을 위해서만) 사용할 수 있습니다 더미 테이블 엔진으로. 그러나 서버를 재부팅 할 때 힙 테이블에 넣은 데이터가 사라집니다.

RAM의 테이블은 매우 빠릅니다.

저장 엔진을 변경하여 기존 테이블을 변경할 수 있습니다. 그러나 서버가 다시 시작된 후 데이터를 사용하려면 백업을 만듭니다.

Alter Table Test Engine = 메모리;

메모리 테이블에는 블로브 또는 텍스트 열이 포함될 수 없으며 데이터와 인덱스 크기는 사용 가능한 메모리로 제한됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top