-
[CS/Database] 인덱스CS/데이터베이스 2024. 10. 28. 23:18반응형
• 인덱스에 대해 설명해주시고, 장/단점에 대해 말해주세요.
- 인덱스란 테이블을 처음부터 끝까지 검색하는 방법인 FTS(Full Table Scan) 과는 달리 인덱스를 검색하여 해당 자료의 테이블을 엑세스 하는 방법입니다.
- 예를 들어, DB를 책으로 비유한다면 데이터는 책의 내용일 것이고, 데이터가 저장된 레코드 주소는 인덱스 목록에 있는 페이지 번호일 것입니다.
- 인덱스는 항상 정렬된 상태를 유지하기 때문에 원하는 값을 검색하는데 빠르지만, 새로운 값을 추가하거나 삭제, 수정하는 경우에는 쿼리문 실행 속도가 느려집니다.
- 즉, 인덱스는 데이터의 저장 성능을 희생하고, 그대신 데이터의 검색 속도를 높이는 기능이라 할 수 있습니다.
📓 레코드, 필드? · 레코드 : 논리적으로 연관된 필드의 집합 (= 행, 튜플) · 필드 : 열에 해당하는 가장 작은 단위의 데이터
• 인덱스를 사용하면 좋은 경우 / 인덱스 사용을 피해야 하는 경우?
- 인덱스를 사용하면 좋은 경우
- where 절에서 자주 사용되는 컬럼
- 외래키가 사용되는 컬럼
- join에 자주 사용되는 컬럼
- 인덱스 사용을 피해야 하는 경우
- 데이터 중복도가 높은 컬럼
- DML이 자주 일어나는 컬럼
📓 데이터베이스 언어(DDL, DML, DCL) · DDL : 데이터베이스 구조를 정의, 수정, 삭제하는 언어 ex) alter, create, drop · DML : 데이터베이스 내의 자료 검색, 삽입, 삭제, 갱신을 위한 언어 ex) select, insert, delete, update · DCL : 데이터에 대해 무결성 유지, 병행 수행 제어, 보호와 권리를 위한 언어 ex) commit, rollback, grant, revoke
• DBMS는 인덱스를 어떻게 관리하고 있나요? (인덱스 자료구조)
1. B+Tree 자료구조
- B-Tree를 개선한 형태의 자료구조이며,
- 값을 리프 노드에만 저장하며 리프 노드들끼리는 링크드 리스트로 연결되어 있기 때문에, 부등호문 연산에 대해 효과적입니다.
- 리프 노드를 제외한 노드들은 포인터의 역할만을 수행합니다.
2. 해시테이블 자료구조
- 해시 함수를 이용해서 값을 인덱스로 변경하여 관리하는 자료구조로,
- 일반적인 경우 탐색, 삽입, 삭제 연산에 대해 O(1)의 시간 복잡도를 가지며 다른 관리 방식에 비해 빠른 성능을 가집니다.
- 하지만 값 자체를 변경하기 때문에 부등호문, 포함문 등의 연산에 사용할 수 없습니다.
* 위 글은 아래 문서를 참고해 작성했습니다.
https://dev-coco.tistory.com/158
신입 개발자 기술면접 질문 정리 - 데이터베이스
💡 데이터베이스의 특징에 대해 설명해주세요. 실시간 접근성(Real-Time Accessibility) : 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 하며, 지속적인 변화(Continuous Evloution) :
dev-coco.tistory.com
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/main/Database#index
Interview_Question_for_Beginner/Database at main · JaeYeopHan/Interview_Question_for_Beginner
:boy: :girl: Technical-Interview guidelines written for those who started studying programming. I wish you all the best. :space_invader: - JaeYeopHan/Interview_Question_for_Beginner
github.com
DB 인덱스 자료구조
인덱스는 데이터베이스에서 검색 속도를 향상시켜준다. key, value 형태로 정렬되어 책의 목차처럼 빠르게 어떤 정보에 접근할 수 있도록 도와준다. 정렬되어 있기 때문에 데이터를 찾을 때 테이
medium.com
[DB] Index - 개념, 장단점, 자료구조(B-Tree, B+Tree)
DB의 테이블에 대한 검색 속도를 향상시켜주는 자료구조테이블의 특정 컬럼에 인덱스 생성 : 해당 컬럼의 데이터를 정렬한 후, 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 컬
velog.io
review 1회독 2회독 3회독 4회독 5회독 check ✅(2/22) 반응형'CS > 데이터베이스' 카테고리의 다른 글
[CS/Database] Elastic Search / Elastic Search의 인덱스구조와 RDBMS의 인덱스 구조의 차이 / Elastic Search의 키워드 검색과 RDBMS의 LIKE 검색의 차이 (1) 2025.02.21 [CS/Database] Redis / Redis와 Memcached 차이 (1) 2025.02.17 [CS/Database] NoSQL / RDBMS와 NoSQL의 차이 (0) 2025.02.17 [CS/Database] 트랜잭션 / ACID / 트랜잭션 격리수준(Transaction Isolation Levels) (0) 2025.02.17 [CS/Database] 정규화 (0) 2024.10.28