---------------------------------------------
Markus Winand는 SQL에 대한 통찰력을 제공하고 다양한 시스템이 SQL을 지원하는 방법을 modern-sql.com 에서 보여줍니다. 이전에 그는 use-the-index-luke.com 을 만들었는데, 지금도 활발하게 유지되고 있습니다. Markus는 winand.at 를 통해 강사, 연사 및 컨설턴트로 고용될 수 있습니다.
---------------------------------------------
You can upload a Korean translation of use-the-index-luke.com on your blog
Thank you from the bottom of my heart to author Makus Winand for allowing me.
These are translations that I use for studying by using a papago (google translate)
The translations may not be correct or there may be a typo.
I'd appreciate it if you could point it out in the comments.
---------------------------------------------
---------------------------------------------
use-the-index-luke.com 의 한글번역본을 블로그에 업로드 해도 된다고
허락해주신 Makus Winand 님께 진심으로 감사합니다.
이 번역본들은 제가 공부용도로 번역기(papago, google transrate)를 돌려서
번역한 내용들이라 맞지 않거나, 오타가 있을수 있습니다.
댓글로 지적해주시면 감사하겠습니다.
---------------------------------------------
인덱스의 리프 노드
https://use-the-index-luke.com/sql/anatomy/the-leaf-nodes
인덱스의 주요 목적은 인덱스된 데이터를 순서대로 표시하는 것입니다. 그러나 데이터를 순차적으로 저장하는 것은 불가능합니다.
insert 구문은 새 엔트리를 위한 공간을 확보해야 합니다. 대량의 데이터를 이동하려면 시간이 많이 걸리기 때문에 insert 구문이 매우 느릴 것입니다. 이문제의 해결책은 메모리의 물리적인 순서와는 무관한 논리적인 순서를 확립하는 것입니다.
논리 순서는 이중 링크 리스트를 통해 확립됩니다. 각 노드에는 체인과 같은 2개의 인접 엔트리에 대한 링크가 있습니다. 새 노드를 참조하도록 링크를 업데이트하여 기존 두 노드사이에 새 노드를 삽입합니다. 이중으로 연결된 목록은 논리적 순서를 유지하므로 새 노드의 물리적 위치는 중요하지 않습니다.
각 노드가 이전 노드와 다음 노드를 참조하기 때문에 데이터 구조를 이중 링크 목록이라고 합니다. 그러면 데이터베이스가 필요에 따라 인덱스를 앞으로 또는 뒤로 읽을수 있습니다.
따라서 많은 양의 데이터를 이동하지 않고 새 엔트리를 삽입할 수 있습니다. 포인터만 변경하면 됩니다.
이중 링크 목록은 많은 프로그래밍 언어의 모음(컨테이너)에도 사용됩니다.
데이터베이스는 이중 링크 목록을 사용하여 소위 인덱스 리프 노드를 연결합니다. 각 리프 노드는 데이터베이스 블록 또는 페이지, 즉 데이터베이스의 최소 저장 단위에 저장됩니다. 모든 인덱스 블록의 크기는 일반적으로 몇 킬로바이트입니다. 데이터베이스는 각 블록의 공간을 가능한 한 사용하고 각 블록에 가능한 한 많은 인덱스 항목을 저장합니다. 즉, 각 리프 노드 내의 인덱스 항목과 이중 링크 목록을 사용하는 서로 간의 리프 노드라는 두 가지 수준에서 인덱스 순서가 유지됩니다.
Figure 1.1 Index Leaf Nodes and Correponding Table Data
그림 1.1은 인덱스 리프 노드와 테이블 데이터에 대한 연결을 보여줍니다.
각 인덱스 엔트리는 인덱스된 열(키, 열 2)로 구성되며 대응하는 테이블 행을 참조합니다.
ROWID 또는 RID) 인덱스와 달리 테이블 데이터는 힙 구조로 저장되며 정렬 되지 않습니다. 동일한 테이블 블록에 저장된 행 간의 관계도 블록 간의 연결도 없습니다.그림 1.1은 인덱스 리프 노드와 테이블 데이터와의 연결을 보여줍니다. 각 인덱스 항목은 인덱스된 열(키, 열 2)로 구성되며 해당 테이블 행(ROWID 또는 RID를 통해)을 참조합니다. 인덱스와 달리 테이블 데이터는 힙 구조로 저장되며 정렬되지 않습니다. 동일한 테이블 블록에 저장된 행 간에 관계가 없거나 블록 간에 연결이 없습니다.
'use-the-index-luke' 카테고리의 다른 글
2장 WHERE 문 (0) | 2023.06.15 |
---|---|
1.3 Slow Indexes, Part I (0) | 2023.06.13 |
1.2 The Search Tree (B-Tree) Makes the Index Fast (1) | 2023.06.09 |
1장 인덱스의 구조 (0) | 2023.06.02 |
SQL Indexing and Tuning e-Book && 저자소개 및 감사 인사 (0) | 2023.06.02 |