Open jungmiin opened 1 year ago
Index 데이터베이스에서 검색을 빨리하기위해 특정 컬럼을 인덱스로 지정해서 검색속도를 향상시킨 방법입니다.
Index의 자료 구조 B Tree, B+Tree를 많이 사용. 검색에 최적화 되어있기도 하고, 중복을 허용하지 않기 때문에 Index로 사용하기 좋다.
delete, update가 더 안좋은데 왜그럴까? 원래 없던 값이 추가될때는 정렬이 필요하지 않다고 생각, 시간 순서로 id가 생성이 되니까… delete가 되면 그 부분이 없이 정렬 작업이 다시 이뤄지기 때문에 연산이 많이 발생하지 않을까 생각한다.
다른 Tree 구조도 있는데 B - Tree B+Tree B Tree B+ Tree는 자식 노드가 두개 이상이기 때문에 더 빠르게 접근할 수 있기 때문에 훨씬 빠르다. 그리고 leaf node가 링크드 리스트를 통해 연결이 되어있어서 범위 검색에 있어 훨씬 효율적이기 때문에 B+Tree를 많이 사용한다 생각한다.
데이터베이스 Index 로 자료를 빠르게 검색하는 과정을 할머니도 알아듣기 쉽게 Index라는게 있으면 데이터베이스를 빠르게 찾을 수 있는데 주민번호 하나만 있으면 누군지 알 수 있는 것처럼, 많은 데이터에도 빠르게 찾을 수 있는게 필요하다. 그래서 만든게 인덱스이고, 데이터의 주민등록번호같은 것. 사용자가 검색을 하면 인덱스를 통해서 인덱스와 동일한 데이터를 찾고, 그 데이터를 반환한다.
인덱스로 사용하기 좋은 칼럼 기본키, 유일성을 만족하고, Null이 없기 때문에 기본키를 index 컬럼으로 선택할 것
인덱스로 검색 속도 향상시키는 방법?
인덱스의 단점
인덱시에 B+ tree 사용 시 단점은?
인덱시 사용하면 좋은 경우
인덱시 필해야 하는 경우