index 2

[SQL] PK(기본키)는 어떤 값이 좋을까? (auto_increment, uuid)

데이터베이스에 테이블을 추가하는 작업을 해야한다고 가정해봅시다. 테이블의 설계에 따라 ID 값이 필요한 상황입니다.이 때, ID값으로 어떤 값을 사용하는 것이 가장 이상적일까요? 간단히 필요한 개념을 먼저 살펴보고 알아보도록 하겠습니다.SQL에서 ID 란?ID는 Identifier, 식별자라는 의미로 SQL에서는 데이터베이스 내의 각 행(레코드)을 고유하게 식별하는 값을 의미합니다.이 ID는 다음과 같은 특징을 가집니다.고유 식별자: 각 테이블의 행(row)은 고유한 ID를 가진다.관계 형성: 테이블에서 다른 테이블의 ID를 참조하여 데이터 간의 관계를 설정할 수 있다.데이터 무결성: 고유한 ID를 통해 데이터의 중복을 막고, 각 데이터가 명확하게 식별될 수 있도록 한다.각 행을 식별하는 어떠한 값도 I..

DataBase 2025.11.25

[SQL] 3. 인덱스(Index)란?

인덱스(Index)란?책에서 특정 단어를 찾을 때, 페이지를 처음부터 끝까지 넘기면 상당히 오래 걸린다. 하지만 책 뒤에 있는 인덱스를 보면 해당 단어가 있는 페이지 번호(위치)를 바로 알 수 있다.데이터베이스에서도 마찬가지로 테이블이 커질수록 WHERE/ ORDER BY/ JOIN 작업은 테이블 풀스캔( O(N) )이면 I/O 지옥으로 지연과 락이 많아질 수 있다. 이 때 인덱스를 사용하면 원하는 데이터의 위치를 먼저 찾아서 빠르게 접근할 수 있게 된다.인덱스를 사용하면 정렬된 데이터 구조(대부분 B+Tree), 빠른 주소록(해시)을 사용해 O(logN) 또는 평균 O(1)에 가까운 탐색 속도를 제공할 수 있다. 인덱스를 통해 데이터 베이스 조회 시 읽기 경로 단축 + 불필요한 페이지 접근 제거 + 정..

DataBase 2025.08.14