목록CS/DB (2)
복습

인덱스는 여러 자료구조를 이용해서 구현할 수 있는데, 대표적으로 해시 테이블(Hash Table)과 B+Tree가 있다. 해시 테이블(Hash Table) key와 value를 한 쌍으로 데이터를 저장하는 자료구조 key 값으로 value를 찾기 때문에 평균적으로 O(1)의 매우 빠른 시간으로 데이터를 탐색 But, 해시 테이블은 인덱스에서 잘 사용되지 않는다. Why? 해시 테이블은 등호(=) 연산에 최적화 데이터베이스에서는 부등호() 연산이 자주 사용되는데, 해시 테이블의 데이터는 정렬되어 있지 않으므로 기준값보다 작거나 큰 값을 빠른 시간 내에 찾을 수 없다. B-Tree Balanced Tree의 일종으로 Binary Tree(이진 트리)를 확장하여 하나의 노드가 가질 수 있는 자식 노드의 최대 ..

인덱스(Index)란? 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조 책의 맨 앞 또는 맨 뒤에 있는 색인과 같다. 테이블의 모든 데이터를 검색하면 시간이 오래 걸려 데이터와 데이터의 위치를 포함한 자료구조를 생성하여 빠르게 조회할 수 있도록 한다. 인덱스 생성 시 해당 컬럼의 데이터를 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장 인덱스 생성 시 데이터를 오름차순으로 정렬하기 때문에 정렬된 주소체계라고 표현할 수 있다. select, update, delete의 성능이 향상된다.(모두 대상을 조회해야 하기 때문) 인덱스의 장점과 단점 장점 데이터가 정렬되어 있어 조건 검색이라는 영역에서 굉장한 장점 테이블을 조회하는 속도와 그에 ..