티스토리 뷰
🚀 들어가며...
- 인덱스와 시퀀스의 차이를 정확하게 정리하고자 포스팅하게 되었습니다!
📑 내용
# 인덱스(Index)
인덱스의 예를 들 때 가장 많이 쓰이는 것이 책의 페이지를 찾는 방법입니다.
책에서 특정 단어 또는 내용이 있는 페이지를 찾으려면 두 가지 방법을 생각할 수 있습니다.
책을 처음부터 끝까지 읽어보며 찾을 수도 있고, 책의 목차나 색인을 통해 찾으려는 단어가 있는 페이지를 바로 찾을 수 있습니다.
찾는 속도를 생각한다면 책의 모든 페이지를 읽어서 찾는 것보다 목록이나 색인을 활용하여 찾는 것이 빠릅니다. 그리고 책의 내용이 많아질수록 속도 차이는 더욱 커집니다.
색인이라는 뜻의 인덱스는 책 내용을 찾는 것과 마찬가지로 데이터베이스에서 데이터 검색 성능의 향상을 위해 테이블 열에 사용하는 객체를 뜻합니다. 테이블에 보관된 특정 행 데이터의 주소, 즉 위치 정보를 책 페이지처럼 목록으로 만들어 놓은 것입니다. 인덱스는 테이블 열을 여러 가지 분석을 통해 선정하여 설정할 수 있습니다.
정리
- 테이블 검색 성능 향상을 제공하는 개체
- 테이블 전체를 검색하는 풀스캔을 하지 않고, 효율적으로 검색하기 위해 인덱스를 통해 필요한 정보를 빠르게 검색 가능
- 인덱스를 활용하기 위해서는 WHERE절 조건에서 인덱스 생성할 때 지정한 컬럼을 사용하여야 해당 인덱스 활용이 가능.
# 시퀀스 (Sequence)
순차적인 숫자발생기 입니다.
유일한 값을 생성하게 도와주는 객체입니다.
주로 ID와 같이 순차적으로 증가하는 컬럼에 많이 사용합니다.
정리
- 숫자 제공 객체
- 중복을 피하기 위한 순서가 필요한 경우 시퀀스를 생성하여 고유한 값으로 처리
🙋🏻♂️ 후기
최근에 테이블 마이그레이션을 진행하면서 순차적으로 증가하는 컬럼의 sequence가 두 테이블 간 서로 맞지 않아 insert오류가 발생하였는데 setval을 이용하여 sequence를 맞춰주니 정상동작하여 sequence에 대해 자세히 알아보게 된 계기가 되었던것 같습니다.
모두들 화이팅~!!
🔗 참고한 글
'Postgresql' 카테고리의 다른 글
[Postgresql] DROP vs TRUNCATE vs DELETE 차이점 (2) | 2022.09.05 |
---|---|
[DB] Redis란?? (0) | 2022.08.23 |
[Postgresql] Psycopg2란? 트랜잭션 ID 추출방법은? (0) | 2022.08.09 |
[DB] Master & Slave 개념에 대해 알아보자! (1) | 2022.07.06 |
[postgresql] Window Function(윈도우함수)에 대해 알아보자! (0) | 2022.07.05 |
- Total
- Today
- Yesterday
- lv1
- react
- Linux
- db
- uSWGI
- Python
- 탐욕법
- This
- container
- ORM
- docker
- Named export
- Default export
- JavaScript
- programmers
- generator expression
- lv2
- Master & Slave
- union-find
- data formatting
- SQL
- MVT
- list
- static files
- Greedy Algorithm
- PostgreSQL
- django
- django ORM
- Algorithm
- JS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |