DataBase/MsSql
MSSQL Index(인덱스) 장점, 단점
아우럼
2024. 7. 17. 19:00
반응형
Index는 database의 성능 향상을 가져올 수도 있지만 저하를 발생할 수 있습니다. 그래서 오늘은 index의 장점, 단점에 관해서 설명하겠습니다.
INDEX의 장점
- primary key를 기초로 하여 테이블에서 검색과 정렬 속도를 향상하게 할 수 있습니다.
- 인덱스를 사용하면 테이블 행의 고유성을 강화할 수 있습니다.
- 테이블의 primary key는 자동으로 인덱스 됩니다.
- 필드 중에는 데이터 형식 때문에 인덱스 될 수 없는 필드도 있습니다, 대표적인 필드는 text type입니다.
- 다중 필드 인덱스를 사용하면 첫 필드 값이 같은 레코드도 구분할 수 있는 기준이며, 최대 10개까지 가능합니다.
INDEX의 단점
- 인덱스도 저장공간이 필요하므로 disk 저장공간을 차지합니다.
- INDEX 된 필드에서 데이터를 업데이트하거나, 레코드를 추가 또는 삭제할 때 성능이 떨어집니다.
- INDEX는 주기적으로 관리가 필요합니다, 즉 비용이 발생합니다.
- 대량의 Data일 때 index 변경하기 쉽지 않습니다. 처음 생성할 때 주의해서 생성해야 합니다.
- 데이터 변경 작업이 자주 일어날 때 인덱스를 재작성해야 할 필요가 있기에 성능에 영향을 끼칠 수 있다.
- INDEX를 추가하면 query 속도가 빨라지지만, 데이터 행을 추가하는 속도는 느려지게 되어 여러 사용자가 사용하는 경우 레코드 잠금 문제가 발생할 수 있습니다.
- INSERT, DELETE, UPDATE 빈번하게 발생하는 테이블은 미리 성능 테스트가 필요합니다.
INDEX를 사용하면 좋은 경우
- INDEX를 효율적으로 사용하기 위해선 데이터의 range가 넓고 중복이 적을수록, 조회가 많거나 정렬된 상태가 유용한 칼럼에 사용하는 것이 좋습니다.
- 규모가 큰 테이블에 Index 생성하면 좋습니다.
- 삽입(INSERT), 수정(UPDATE), 삭제(DELETE) 작업이 자주 발생하지 않는 칼럼에 Index 생성하면 좋습니다.
- WHERE나 ORDER BY, JOIN 등이 자주 사용되는 칼럼은 Index 생성하면 좋습니다.
- 데이터의 중복도 낮은 칼럼은 Index 생성하면 좋습니다.
반응형