索引的填充因子

2021-09-05 19:29:18 字數 534 閱讀 1972

建立索引時,可以指定乙個填充因子,以便在索引的每個葉級頁上留出額外的間隙和保留一定百分比的空間,供將來表的資料儲存容量進行擴充和減少頁拆分的可能性。填充因子的值是從   0   到   100   的百分比數值,指定在建立索引後對資料頁的填充比例。值為   100   時表示頁將填滿,所留出的儲存空間量最小。只有當不會對資料進行更改時(例如,在唯讀表中)才會使用此設定。值越小則資料頁上的空閒空間越大,這樣可以減少在索引增長過程中對資料頁進行拆分的需要,但需要更多的儲存空間。當表中資料會發生更改時,這種設定更為適當。

填充因子越大,意味著乙個索引頁包含的索引記錄越多,空閒空間越小.一般來說查詢的效率越高,因為這樣查詢的時候,可以減少讀取索引頁的工作量和減少記憶體使用  

但這樣導致的結果是資料變動導致的索引維護的工作量增加,因為索引頁的空閒空間小,如果不能在本頁內完成索引調整,就會引起調整其他索引頁  

所以一般的選擇是,資料基本不變化的(例如olap的場景,資料只用來分析的),將填充因子設定到足夠大,資料經常變化的(例如oltp的場景),將填充因子設定為足夠小

重建索引的填充因子

開啟高階選項才能檢視修改預設填充因子 execsp configure show advanced options 1 reconfigure 檢視預設的填充因子 預設config value 0,也就是100 execsp configure fill factor 檢視某一索引的填充因子 sel...

mysql的填充因子 資料庫索引的填充因子

舉個例子 假定你剛剛用預設的填充因子新建立了乙個索引。當sqlserver建立它時,它把索引放在相鄰的物理頁面上,因為資料能夠順序的讀所以這樣會有最優的i o訪問。但當表隨著 增加和改變時,發生了頁拆分。當頁拆分發生時,sqlserver必須在磁碟的某處分配乙個新的頁,這些新的頁和最初的物理頁不是連...

mysql的填充因子 資料庫索引中的填充因子

在建立聚集索引時,表中的資料按照索引列中的值的順序儲存在資料庫的資料頁中。在表中插入新的資料行或更改索引列中的值時,microsoft sql server 2000 可能必須重新組織表中的資料儲存,以便為新行騰出空間,保持資料的有序儲存。這同樣適用於非聚集索引。新增或更改資料時,sql serve...