SQL

페이지 분할 및 전체 테이블 검색하기 | SQL 데이터베이스를 최적화하는 방법

DSDiary 2023. 7. 1. 00:13
728x90
반응형
SMALL

 

안녕하세요!

 

 

 

 

SQL을 처음 실무에서 접하는 사람들에게 혼란을 줄 수 있는 다양한 개념과 용어가 있습니다. 이러한 용어 중 일부에는 균형 트리, 페이지, 전체 테이블 검색, 페이지 분할 및 인덱스 검색 등이 포함됩니다. 그래서 오늘은~ 이러한 각 개념을 파악하고 이해하기 쉬운 방식으로 정리해보려고 합니다.

 

 

 

 

균형 트리

 

SQL에서 균형 트리는 데이터베이스에 데이터를 저장하고 구성하는 데 사용되는 데이터 구조 유형을 나타냅니다. 균형 트리는 노드로 구성되며 각 노드에는 키 값과 하위 노드에 대한 포인터가 포함됩니다. 노드의 왼쪽 하위 트리와 오른쪽 하위 트리의 높이 차이가 1 이하일 때 트리가 균형을 이룬 것으로 간주됩니다.

 

 

 

 

SQL에서 사용되는 가장 일반적인 균형 트리 유형 중 하나는 B-tree입니다. 이 유형의 트리는 일반적으로 데이터베이스의 데이터를 인덱싱하는 데 사용되므로 특정 정보를 쉽게 검색할 수 있습니다.

 

 

 

 

페이지

 

SQL에서 페이지는 데이터베이스 내에 정보를 저장하는 데 사용되는 고정된 크기의 데이터 블록을 나타냅니다. 페이지는 종종 특정 수의 행을 포함하는 각 페이지와 함께 테이블 내에서 데이터를 구성하는 데 사용됩니다.

 

 

 

 

페이지 크기는 사용 중인 데이터베이스에 따라 다를 수 있지만 일반적으로 4KB에서 16KB 사이입니다. 페이지를 사용함으로써 SQL 데이터베이스는 많은 양의 데이터를 보다 효율적으로 관리하고 구성할 수 있습니다.

 

 

 

 

전체 테이블 검색

 

SQL 쿼리가 실행될 때 데이터베이스 엔진은 요청된 데이터를 검색하기 위해 전체 테이블을 검색해야 할 수 있습니다. 이를 전체 테이블 검색이라고 합니다.

 

 

 

 

전체 테이블 검색은 특히 큰 테이블을 처리할 때 리소스를 많이 사용하고 느릴 수 있습니다. 이러한 이유로 가능할 때마다 전체 테이블 검색을 피하고 대신 필요한 특정 데이터만 검색하는 보다 대상이 지정된 쿼리를 사용하는 것이 가장 좋습니다.

 

 

 

 

페이지 분할

 

SQL에서 페이지 분할은 데이터베이스 내의 페이지가 너무 꽉 차서 별도의 두 페이지로 나누어야 할 때 발생합니다. 이것은 새 데이터가 테이블에 추가되고 기존 페이지에 저장할 공간이 더 이상 없을 때 발생할 수 있습니다.

 

 

 

페이지 분할은 디스크 I/O 증가 및 쿼리 시간 저하로 이어질 수 있으므로 SQL 데이터베이스의 성능 문제가 될 수 있습니다. 페이지 분할의 영향을 최소화하려면 데이터베이스의 페이지 할당 설정을 적절하게 구성하는 것이 중요합니다.

 

 

 

 

인덱스 검색

 

SQL 데이터베이스 내에서 특정 데이터를 검색할 때 데이터베이스 엔진은 인덱스 검색을 사용할 수 있습니다. 여기에는 전체 테이블을 검색하는 대신 해당 테이블에 생성된 인덱스를 통한 검색이 포함됩니다

 

 

 

 

일반적으로 인덱스 검색은 특히 대형 테이블을 처리할 때 전체 테이블 검색보다 빠르고 효율적입니다. 그러나 인덱스에 포함되지 않는 데이터를 검색할 때는 효율성이 떨어질 수 있습니다.

 

반응형
LIST