Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

MySQL에서 복합 인덱스를 사용하여 느린 쿼리를 빠르게 만들기


종합 지수가 무엇인지 먼저 살펴보겠습니다 −

  • 복합 인덱스는 여러 열에 사용되는 인덱스입니다.

  • 다중 열 색인이라고도 합니다.

  • MySQL을 사용하면 사용자가 최대 16개의 열로 구성될 수 있는 복합 인덱스를 만들 수 있습니다.

  • 쿼리 최적화 프로그램은 인덱스의 모든 열을 테스트할 쿼리에 복합 인덱스를 사용합니다.

  • 첫 번째 열, 처음 두 열 등을 테스트하는 쿼리에도 사용할 수 있습니다.

  • 열이 인덱스 정의에서 올바른 순서로 지정되면 단일 복합 인덱스를 사용하여 동일한 테이블에서 특정 종류의 쿼리 속도를 높일 수 있습니다.

테이블을 생성하는 동안 복합 인덱스를 생성하는 방법을 살펴보겠습니다. 아래 문을 사용하여 수행할 수 있습니다. -

쿼리

CREATE TABLE table_name (
   c1 data_type PRIMARY KEY,
   c2 data_type,
   c3 data_type,
   c4 data_type,
   INDEX index_name (c2,c3,c4)
);

위의 문장에서 복합 인덱스는 세 개의 열 c2, c3, c4로 구성됩니다.

복합 인덱스는 'CREATE INDEX' 문을 사용하여 기존 테이블에 추가할 수도 있습니다. 이것이 어떻게 가능한지 봅시다 -

쿼리

CREATE INDEX index_name
ON table_name(c2,c3,c4);

복합 인덱스를 사용하여 sloq 쿼리를 빠르게 만드는 방법을 살펴보겠습니다.

  • 쿼리 실행 속도는 지속 시간에 따라 다릅니다.

  • 인덱스 힌트를 사용하면 쿼리 속도가 빨라집니다.

  • 인덱스를 선택하는 동안 MySQL 최적화 프로그램을 사용하여 올바른 결정을 내릴 수 있습니다.

  • 그러나 이것은 정적 쿼리에서만 수행되어야 합니다.

  • 'WHERE' 절이 변경되는 곳에 쿼리를 추가하면 옵티마이저가 제 역할을 하지 못하게 되어 쿼리의 성능이 저하됩니다.

  • 'FORCE INDEX' 문은 'USE INDEX(index_list)'와 같은 역할을 하며 테이블 스캔은 비용이 많이 드는 작업으로 간주됩니다.

  • 테이블 스캔은 명명된 인덱스를 사용하여 테이블의 행을 찾는 방법이 없는 경우에만 필요합니다.