• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.6 한글메뉴얼) [close]
  • 1. MySQL 5.6 새로운 기능
  • 2. MySQL 설치 및 업그레이드
  • 3. MySQL Tutorial
  • 4. MySQL 프로그램
  • 5. MySQL 서버관리
  • 6. 보안
  • 7. 백업 및 복구
  • 8. 최적화
  • 9. Language Structure(언어구조)
  • 10. Character Sets(Globalization)
  • 11. 데이터형(Data Types)
  • 12. 함수와 연산자
  • 13. SQL 문법
  • 1. 데이터 정의 문
    2. 데이터 조작 문
    3. MySQL 트랜잭션과 잠금 문
    4. 복제 문
    5. Prepared Statements위한 SQL 구문
    6. MySQL 복합문 구문
    7. 데이터베이스 관리 문
    1. 계정 관리 문
    2. 테이블 유지 보수 문
    3. 플러그인 및 사용자 정의 함수 문
    4. SET 구문
    5. SHOW 구문
    6. 기타 관리 문
    1. BINLOG 구문
    2. CACHE INDEX 구문
    3. FLUSH 구문
    4. KILL 구문
    5. LOAD INDEX INTO CACHE 구문
    6. RESET 구문
    8. MySQL 유틸리티 문
  • 14. InnoDB 스토리지 엔진
  • 15. 기타 스토리지 엔진
  • 16. 고가용성 및 확장성
  • 17. 리플리케이션
  • 18. MySQL Cluster
  • 19. 파티셔닝
  • 20. Stored Programs and Views
  • 21. INFORMATION_SCHEMA
  • 22. PERFORMANCE SCHEMA
  • 23. 컨넥터 및 API
  • 24. MySQL 확장
  • 25. MySQL Enterprise Edition
  • 26. MySQL Workbench
  • 27. 제약 및 제한
  • 28. MySQL 5.7 새로운 기능

13.7.6.2 CACHE INDEX 구문

CACHE INDEX
  tbl_index_list [, tbl_index_list] ...
  [PARTITION (partition_list | ALL)]
  IN key_cache_name

tbl_index_list:
  tbl_name [[INDEX|KEY] (index_name[, index_name] ...)]

partition_list:
  partition_name[, partition_name][, ...] 

CACHE INDEX 문은 테이블 인덱스를 특정 키 캐시에 할당합니다. 이것은 MyISAM 테이블에만 사용됩니다. 인덱스가 할당되면 이러한 인덱스를 필요에 따라 LOAD INDEX INTO CACHE 캐시에 미리로드 할 수 있습니다.

다음 문은 테이블 t1 , t2 및 t3 의 인덱스를 hot_cache 라는 이름의 키 캐시에 할당합니다.

mysql> CACHE INDEX t1, t2, t3 IN hot_cache;
+---------+--------------------+----------+----------+
| Table   | Op                 | Msg_type | Msg_text |
+---------+--------------------+----------+----------+
| test.t1 | assign_to_keycache | status   | OK       |
| test.t2 | assign_to_keycache | status   | OK       |
| test.t3 | assign_to_keycache | status   | OK       |
+---------+--------------------+----------+----------+

CACHE INDEX 구문은 테이블의 특정 인덱스 만 캐시에 할당하도록 지정할 수 있습니다. 현재 구현에서는 테이블의 모든 인덱스를 캐시에 할당 테이블 이름 이외의 것을 지정하는 이유는 아무것도 없습니다.

CACHE INDEX 문에서 참조되는 키 캐시는 파라미터 설정 명령을 사용하여 또는 서버의 매개 변수 설정에서 크기를 설정하여 만들 수 있습니다. 예 :

 mysql> SET GLOBAL keycache1.key_buffer_size=128*1024;

키 캐시 매개 변수는 구조화 된 시스템 변수의 멤버로 액세스 할 수 있습니다. 섹션 5.1.5.1 "구조 시스템 변수" 를 참조하십시오.

인덱스 키 캐시에 할당하려면 해당 키 캐시가 존재해야합니다.

 mysql> CACHE INDEX t1 IN non_existent_cache;
 ERROR 1284 (HY000) : Unknown key cache 'non_existent_cache'

기본적으로 테이블 인덱스는 서버 시작시에 생성되는 메인 (디폴트) 키 캐시에 할당됩니다. 키 캐시가 파기되면 그에 할당 된 모든 인덱스는 기본 키 캐시에 다시 할당됩니다.

인덱스 할당은 서버에 전체적으로 영향을 미칩니다. 클라이언트가 인덱스를 특정 캐시에 할당하면 어떤 클라이언트가 쿼리를 발행했는지에 관계없이이 캐시는 그 인덱스에 관련된 모든 쿼리에 사용됩니다.

MySQL 5.6에서는이 문은 분할 된 MyISAM 테이블에 대해서도 지원됩니다. 하나, 여러 또는 모든 파티션 하나 이상의 인덱스를 특정 키 캐시에 할당 할 수 있습니다. 예를 들어, 다음 문을 실행할 수 있습니다.

 CREATE TABLE pt (c1 INT, c2 VARCHAR (50), INDEX i (c1))
     PARTITION BY HASH (c1)
     PARTITIONS 4;

 SET GLOBAL kc_fast.key_buffer_size = 128 * 1024;
 SET GLOBAL kc_slow.key_buffer_size = 128 * 1024;

 CACHE INDEX pt PARTITION (p0) IN kc_fast;
 CACHE INDEX pt PARTITION (p1, p3) IN kc_slow;

이전 일련의 명령문은 다음 작업을 수행합니다.

  • 4 개의 파티션을 포함하는 파티션 된 테이블을 만듭니다. 이러한 파티션은 자동으로 p0 , ..., p3 라는 이름을 붙일 수 있습니다. 이 테이블에는 컬럼 c1 에 i 라는 인덱스가 포함되어 있습니다.

  • kc_fast 과 kc_slow 라는 두 개의 키 캐시를 만듭니다.

  • 파티션 p0 의 인덱스를 kc_fast 키 캐시 파티션 p1 과 p3 의 인덱스를 kc_slow 키 캐시에 할당합니다. 나머지 파티션 ( p2 )의 인덱스 서버의 기본 키 캐시를 사용합니다.

대신 테이블 pt 의 모든 파티션의 인덱스를 kc_all 라는 하나의 키 캐시에 할당하려면 다음 두 문장 모두에서 사용할 수 있습니다.

 CACHE INDEX pt PARTITION (ALL) IN kc_all;

 CACHE INDEX pt IN kc_all;

지금 나와있는 두 개의 문은 같으며이 가운데 어느 쪽을 실행해도 효과는 동일합니다. 즉, 파티션 된 테이블의 모든 파티션의 인덱스를 동일한 키 캐시에 할당하는 경우 PARTITION (ALL) 어구는 옵션입니다.

여러 파티션 인덱스 키 캐시에 할당하면 해당 파티션이 연속적 필요는없고, 그 이름을 특정 순서로 나열 할 필요도 없습니다. 키 캐시에 명시 적으로 할당되지 않은 파티션의 인덱스는 자동으로 서버의 기본 키 캐시를 사용합니다.

MySQL 5.6에서는 인덱스의 탑재도 분할 된 MyISAM 테이블에 대해 지원됩니다. 자세한 내용은 섹션 13.7.6.5 "LOAD INDEX INTO CACHE 구문" 을 참조하십시오.

MySQL 5.6.11에서만이 문을 발행하기 전에 gtid_next 를 AUTOMATIC 으로 설정해야합니다. (Bug # 16062608, Bug # 16715809, Bug # 69045)

서울시 강남구 영동대로 602 6층
TEL: 02-6061-0006  /  E: csr@mysqlkorea.com
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved