8.5.5 InnoDB 쿼리 최적화
InnoDB
테이블의 쿼리를 튜닝하려면 각 테이블에 적절한 인덱스 세트를 만듭니다. 자세한 내용은 섹션 8.3.1 "MySQL의 인덱스 사용 방법" 을 참조하십시오. InnoDB
인덱스에 대한 다음 지침을 따르십시오.
각
InnoDB
테이블에는 기본 키 가 (그것을 요청하는 여부에 관계없이) 때문에 가장 중요하고 긴급을 요하는 쿼리에 사용되는 컬럼으로 테이블 당 프라이 머리 키 컬럼 세트를 지정합니다.기본 키의 컬럼 값은 각 보조 인덱스에 복제되므로 그리 많지 너무 긴 컬럼을 지정하지 마십시오. 인덱스에 불필요한 데이터가 포함되어 있으면이 데이터를 읽을 I / O와 그것을 캐시 메모리는 서버의 성능과 확장 성이 떨어집니다.
각 쿼리에서 사용할 수있는 인덱스는 하나뿐이기 때문에 컬럼에 대해 별도의 보조 인덱스 를 작성하지 마십시오. 소수의 다른 값을가 거의 테스트되지 않은 컬럼에 대한 인덱스는 어떤 쿼리에도 도움 않을 수 있습니다. 같은 테이블에서 많은 질의가 컬럼의 다양한 조합을 테스트 할 때 다수의 단일 컬럼 인덱스보다 약간 연결된 인덱스 를 만들어보십시오. 인덱스에 결과 세트에 필요한 모든 열이 포함되어있다 ( 첨부 인덱스 라고합니다) 경우 쿼리는 테이블 데이터를 전혀 읽지 않아도 수 있습니다.
인덱스 설정된 컬럼에
NULL
값이 포함될 수 없으면 테이블을 만들 때 그것을NOT NULL
로 선언합니다. 최적화는 각 컬럼에NULL
값이 포함되어 있는지를 알고 있으면 쿼리에 사용하기 위해 가장 효율적인 인덱스를 더 잘 확인할 수 있습니다.MySQL 5.6.4 이상에서는 섹션 14.13.14 "InnoDB의 읽기 전용 트랜잭션 최적화" 기법을 사용하여
InnoDB
테이블의 단일 쿼리 트랜잭션을 최적화 할 수 있습니다.자주 업데이트되지 않는 테이블에 대해 자주 반복 쿼리를 수행하면 쿼리 캐시를 사용합니다.
[mysqld] query_cache_type = 1 query_cache_size = 10M