(1)掌握SqlServer索引的基本概念
先了解聚集索引的基本常識
索引的定義:索引是一種用於排序的搜尋的結構
表和索引的結構
(1) 頁和區:
1. 頁是儲存資料的基本單位(8kb),也是讀寫的最小i/o單位
2. 包含資訊:表、索引資料、分配點陣圖、可用空間資訊
3.
注意:頁是sql server可以讀寫的最小i/o單位,即使只須訪問一行,sql server也要把整個頁載入到快取,再從快取中讀取資料
4. 區是由8個物理上連續的頁組成的單元
(2) 表的組織方式
1. 表2種組織方式:堆、B樹
2. 堆:不含聚集索引的表
堆儲存資料是不按任何順序進行組織
可以通過掃描IAM 頁對堆進行表掃描或序列讀操作來找到容納該堆的頁的區
3. 聚集索引
3.1索引概述:索引是按 B 樹結構進行組織的。索引 B 樹中的每一頁稱為一個索引節點。B 樹的頂端節點稱為根節點。索引中的底層節點稱為葉節點。根節點與葉節點之間的任何索引級別統稱為中間級
3.2在聚集索引中,葉節點包含基礎表的資料頁。根節點和中間級節點包含存有索引行的索引頁
3.3每個索引行包含一個鍵值和一個指標,該指標指向 B 樹上的某一中間級頁或葉級索引中的某個資料行
3.4一個分割槽 就是一個B樹結構
4. 非聚集索引
4.1非聚集索引中的每個索引行都包含非聚集鍵值和行定位符。此定位符指向聚集索引或堆中包含該鍵值的資料行。
(1)如果表是堆(意味著該表沒有聚集索引),則行定位器(row locator)是指向行的指標。該指標由檔案識別符號(file ID)、頁碼(page number)和頁上的行數(number of the row on the page)生成。整個指標稱為行 ID (RID)。
(2)如果表有聚集索引或索引檢視上有聚集索引,則行定位器是行的聚集索引鍵。如果聚集索引不是唯一的索引,SQL Server 將新增在內部生成的值(稱為唯一值)以使所有重複鍵唯一。此四位元組的值對於使用者不可見。僅當需要使聚集鍵唯一以用於非聚集索引中時,才新增該值。SQL Server 通過使用儲存在非聚集索引的葉行內的聚集索引鍵搜尋聚集索引來檢索資料行。
由龐順龍最後編輯於:4年前
內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。
相關文章
- 【Oracle索引】-索引基本概念Oracle索引
- SqlServer——索引SQLServer索引
- SQLServer索引優化(1):對於有order by欄位的建索引策略SQLServer索引優化
- [zt] SQLSERVER索引的使用技巧SQLServer索引
- sqlserver 全部索引重建SQLServer索引
- SqlServer索引的原理與應用SQLServer索引
- SQLSERVER的非聚集索引結構SQLServer索引
- mssql sqlserver 索引專題SQLServer索引
- SqlServer 建立全文索引SQLServer索引
- Ability的基本概念(1)
- SQLServer索引優化(2):對於索引中include的理解SQLServer索引優化
- 認識SQLServer索引以及單列索引和多列索引的不同SQLServer索引
- Sqlserver表和索引壓縮SQLServer索引
- SQLServer索引優化(3):對於建組合索引的要求SQLServer索引優化
- 利用索引的一些經驗(SQLSERVER)索引SQLServer
- 掌握4種SQL索引型別,剖析索引原理SQL索引型別
- sqlserver索引重建和索引重組的區別和操作方法SQLServer索引
- RabbitMQ(1)---基本概念MQ
- 【sqlserver】 統計索引使用次數SQLServer索引
- 快速掌握mongoDB(三)——mongoDB的索引詳解MongoDB索引
- SQLSERVER 的主鍵索引真的是物理有序嗎?SQLServer索引
- 一文掌握GitHub Actions基本概念與配置Github
- (2) SqlServer表與索引的結構的補充SQLServer索引
- Sqlserver自動查詢缺失索引及拼出建立索引的語句的指令碼SQLServer索引指令碼
- 【SqlServer】管理全文索引(FULL TEXT INDEX)SQLServer索引Index
- SQLServer索引維護常用方法總結SQLServer索引
- 1-Vue基本概念Vue
- Nginx 教程 (1):基本概念Nginx
- Awe JavaScript [1] 基本概念JavaScript
- SQLServer 檢查1SQLServer
- 筆記三:基本概念-文件、索引和 REST API筆記索引RESTAPI
- SQLServer查詢哪些索引利用率低SQLServer索引
- GacUI基本概念(二)——排版(1)UI
- 快速掌握RabbitMQ(一)——RabbitMQ的基本概念、安裝和C#驅動MQC#
- SQLServer的死鎖分析(1):頁鎖SQLServer
- 1-Prometheus基本概念與部署Prometheus
- oracle和sqlserver互訪(1)OracleSQLServer
- 一分鐘掌握MySQL的InnoDB引擎B+樹索引MySql索引