복합 인덱스란
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
단일인덱스 & 복합인덱스
특정테이블에 컬럼별 조건에따른 결과건수CUS_ID : 340,000PAY_TP : 9,150,000RNO : 3,047인덱스 컬럼 선정 규칙중하나는 선택성이 좋은컬럼을 사용하는것. 데이터가적을수록 선택성이 좋음. 데이터가많을
velog.io