Open kgh2120 opened 4 months ago
인덱스란 추가 쓰기 작업을 통해 데이터를 빠르게 탐색할 수 있도록 도와주는 자료구조입니다. 주로 데이터베이스 읽기 작업 성능을 높이기 위해 사용합니다.
- 일반적으로 인덱스는 수정이 잦은 테이블에선 사용하지 않기를 권합니다. 왜 그럴까요? 정렬된 상태를 유지해야 하는 인덱스 자료구조에서는 수정이 잦을 경우 더 많은 코스트가 발생하기 때문에 사용을 권장하지는 않습니다. 그렇기 때문에 B+트리와 클러스터 인덱스에서는 권장되지 않지만 해시 인덱스와 논클러스터 인덱스는 비교적 수정에 대한 코스트가 적게 들기 때문에 활용할 수 있습니다. - 기본키는 인덱스라고 할 수 있을까요? 그렇지 않다면, 인덱스와 기본키는 어떤 차이가 있나요? 대부분의 데이터베이스에서는 기본키에 자동으로 클러스터 인덱스를 생성하는 것으로 알고있습니다. 따라서 클러스터 인덱스 기준으로 기본키는 인덱스라고 할 수 있습니다. - 그렇다면 외래키는요? 외래키는 기본적으로 인덱스라고 볼 수는 없지만 외래키를 기준으로 인덱스를 생성할 수는 있습니다.
인덱스는 관계형 데이터베이스에서 검색의 속도를 개선하는데 사용되는 기법으로, 추가적인 메모리를 사용하여 목차를 만들어 검색 속도를 개선합니다.
- 일반적으로 인덱스는 수정이 잦은 테이블에선 사용하지 않기를 권합니다. 왜 그럴까요? 인덱스는 일반적으로 검색성능을 개선하는데 사용됩니다. 따라서 저장될때 정렬이 발생하게 되는데, 수정이 잦아지게 되는 경우 인덱스의 정렬이 자주 발생하여 성능이 저하될 수 있습니다. - 기본키는 인덱스라고 할 수 있을까요? 그렇지 않다면, 인덱스와 기본키는 어떤 차이가 있나요? Primary key는 클러스터드 인덱스로 테이블 조회시 정렬된 상태로 데이터가 저장됩니다. 논 클러스터드 인덱스의 경우 추가적인 메모리를 사용하여 목차를 만들기 때문에 정렬된 상태로 저장되는 것이 아니라는 점에서 차이가 있습니다. - 그렇다면 외래키는요? 외래키의 경우도 필요에 의해 인덱스를 추가할 수 있습니다.
인덱스는 테이블을 빠른 속도로 조회하기위해, 색인을 만들어 두는 기술을 말합니다.
1. 수정이 잦을 경우, 인덱스가 적용된 컬럼을 기준으로 다시 색인을 만들어야하기 때문에 성능이 떨어지기 때문입니다. 2. 기본키는 클러스터드 인덱스라고 할 수 있습니다. 일반적인 인덱스와 다르게 테이블은 기본키를 기준으로 정렬되므로, 다른 인덱스보다 색인에 접근하는 속도가 더 빠릅니다. 3. 외래키도 필요에 따라 인덱스로 사용할 수 있습니다.
문제
예상 꼬리 질문
- 일반적으로 인덱스는 수정이 잦은 테이블에선 사용하지 않기를 권합니다. 왜 그럴까요? - 기본키는 인덱스라고 할 수 있을까요? 그렇지 않다면, 인덱스와 기본키는 어떤 차이가 있나요? - 그렇다면 외래키는요?들어가야 할 키워드 정리