본문 바로가기
카테고리 없음

복합 인덱스 (compound or composite index)

by Sein_ 2024. 5. 10.
728x90

복합 인덱스란

2개이상의 컬럼으로 구성된 인덱스

 

복합 인덱스 장점

단일인덱스를 능가하는 성능을 낼수있으며, 여러개의 인덱스를 대신할수도있다

 

인덱스 주의점

  • 인덱스가 조회속도개선에는 도움이되지만, 입력/수정/삭제에서는 성능이 감수한다.
  • 복합 인덱스를 생성할 때는 인덱스 생성 순서도 고려해야 한다. (선행하는 컬럼부터 조건에 지정하여 사용, 주로 자주 이용되는 순서대로 복합 인덱스 컬럼의 순서 결정)

 

인덱스 사용시 팁

  • 복합인덱스 구성시 선택성이 좋은컬럼을 앞으로 구성하는것이 일반적으로 좋다.
  • 등치조건 (=)을 사용하는 컬럼이 범위조건을 사용하는 컬럼보다 앞으로두는것이 일반적으로 좋다
  • 조건별로 카운트를 해보고 적은건수의 데이터를 위주로 생성하는것이 유리

 

단일인덱스 VS 복합인덱스

  • 복합인덱스는 단일인덱스를 능가하는 성능을 낼수있으며, 여러개의 인덱스를 대신할수도있다
  • 1번필드를 인덱스로 구성하면, 1번필드는 인덱스에서 찾을수있지만 2번필드는 테이블에 접근해야만 확인할수있다. 반면 복합인덱스로 1번필드 2번필드를 구성하면 모두 인덱스안에서 처리가능
  • 인덱스에 없는 컬럼을 확인하기위해서는 테이블접근이 필수다, 적절한 컬럼수로 복합인덱스를 구성하여 성능향상을 고려해야한다.

 

라라벨 복합인덱스

//compound (or composite) index

$table->index(['account_id', 'created_at']);

 

 

인덱스 네이밍 (대표님 코드 예시)

Laravel will automatically generate an index name based on the table, column names, and the index type,

but you may pass a second argument to the method to specify the index name yourself:

$table->index(['example_id', 'date', 'updated_at'], 'example_customer_id_date');

 

 

 

https://laravel.com/docs/7.x/migrations#creating-indexes

 

Laravel - The PHP Framework For Web Artisans

Laravel is a PHP web application framework with expressive, elegant syntax. We’ve already laid the foundation — freeing you to create without sweating the small things.

laravel.com

https://velog.io/@kwontae1313/%EB%B3%B5%ED%95%A9%EC%9D%B8%EB%8D%B1%EC%8A%A4

 

복합인덱스(Composite Index)

복합 인덱스(Composite Index)는 데이터베이스에서 여러 개의 컬럼(열)들을 조합하여 인덱스를 생성하는 것을 말합니다. 단일 인덱스(Single Index)가 한 개의 컬럼에 대해 생성되는 것과는 달리, 복합

velog.io

https://velog.io/@tothek/%EB%8B%A8%EC%9D%BC%EC%9D%B8%EB%8D%B1%EC%8A%A4-%EB%B3%B5%ED%95%A9%EC%9D%B8%EB%8D%B1%EC%8A%A4

 

단일인덱스 & 복합인덱스

특정테이블에 컬럼별 조건에따른 결과건수CUS_ID : 340,000PAY_TP : 9,150,000RNO : 3,047인덱스 컬럼 선정 규칙중하나는 선택성이 좋은컬럼을 사용하는것. 데이터가적을수록 선택성이 좋음. 데이터가많을

velog.io