데이터베이스(Database) 성능, 디스크 I/O(Disk I/O)를 이해하면 보인다!
데이터베이스(Database)가 디스크에 데이터를 저장하는 기본 원리를 설명하며, HDD와 SSD의 차이점을 간략하게 언급함
페이지(Page) 기반의 데이터 접근 방식과 인덱싱(Indexing)을 통한 I/O 비용 절감의 중요성을 강조함
B-트리(B-tree) 및 B+트리(B+tree) 구조를 활용한 효율적인 인덱싱(Indexing) 메커니즘을 소개함
인덱스(Index) 사용을 통해 대용량 데이터베이스(Database)에서 검색 성능을 향상시키는 방법을 제시함
디스크 I/O(Disk I/O)와 페이지(Page)의 관계
게시물은 데이터베이스(Database)가 디스크에서 데이터를 읽고 쓰는 과정을 설명하며, 디스크 I/O(Disk I/O)가 성능에 미치는 영향을 강조한다. 특히, 운영체제(OS)가 블록(Block) 단위로 데이터를 처리하는 반면, 데이터베이스(Database)는 페이지(Page) 단위로 데이터를 관리한다는 점을 기술한다. 페이지(Page)는 여러 블록(Block)을 포함하며, 데이터베이스(Database)는 페이지(Page)를 메모리에 로드하여 데이터를 처리한다.
인덱싱(Indexing)을 통한 성능 최적화
게시물은 인덱싱(Indexing)이 데이터베이스(Database) 성능 향상에 필수적임을 강조한다. 인덱스(Index)를 사용하면 특정 데이터를 찾기 위해 모든 페이지(Page)를 스캔하는 대신, 인덱스(Index)를 통해 데이터의 위치를 빠르게 파악할 수 있다. 특히, 대용량 데이터베이스(Database)에서 인덱싱(Indexing)은 I/O 비용을 획기적으로 줄여 검색 속도를 향상시킨다.
B-트리(B-tree) 및 B+트리(B+tree) 구조
게시물은 B-트리(B-tree) 및 B+트리(B+tree) 구조를 활용한 인덱싱(Indexing) 방식을 설명한다. B-트리(B-tree)는 계층적 구조를 통해 대용량 데이터의 효율적인 검색을 가능하게 한다. B+트리(B+tree)는 B-트리(B-tree)의 변형으로, 모든 데이터를 리프 노드에 저장하여 검색 성능을 더욱 향상시킨다. 이러한 구조는 데이터베이스(Database)가 자동으로 균형을 유지하도록 설계되어, 데이터의 증가에 따라 검색 성능이 저하되는 것을 방지한다.
HDD와 SSD의 저장 방식 비교
게시물은 HDD와 SSD의 데이터 저장 방식을 비교하며, SSD에서도 페이지(Page) 기반의 데이터 접근 방식이 동일하게 적용됨을 설명한다. HDD는 회전하는 플래터(Platter)에 데이터를 저장하는 반면, SSD는 NAND 플래시 메모리를 사용한다. 하지만, 데이터베이스(Database) 관점에서는 저장 매체의 물리적 특성과 관계없이 페이지(Page) 단위로 데이터를 처리한다. 따라서, SSD를 사용하더라도 페이지(Page) 기반의 데이터 접근 방식과 인덱싱(Indexing)의 중요성은 변함없다.