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

2021-10-17 15:08:17 字數 756 閱讀 3568

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

那麼理想的填充因子是多少呢?它依賴於應用程式對sqlserver表的讀和寫的比率。首要的原則,按照下面的指導:

低更改的表(讀寫比率為100:1):100%的填充因子

高更改的表(寫超過讀):50-70%的填充因子

讀寫各一半的:80-90%的填充因子

在為應用程式找到最優的填充因子前也不得不進行試驗。不要假定乙個低的填充因子總比高的好。低的填充因子會減少頁拆分,它也增加了sqlserver查詢期間讀的頁數量,從而減少效能。太低的填充因子不僅增加i/o開銷,也影響快取。當資料頁從磁碟移到快取中時,整個頁(包括空的空間)都移到快取中。所以填充因子越低,不得不移到sqlserver快取中的頁面就越多,意味著同時為其他重要資料頁駐留的空間就少,從而降低效能。

如果你沒有指定填充因子,預設的填充因子時0,意味著100%的填充因子(索引的葉頁100%的填滿,但索引的中間頁有預留的空間)。

作為監控的一部分,你要決定新建索引或重建索引時的填充因子是多少。事實上,除了唯讀資料庫,所有的情況,預設值0都是不適合的。相反,你想要乙個填充因子保留合適的自由空間,按照上面的討論來做。

**:娃酷分類網:

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

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

索引的填充因子

建立索引時,可以指定乙個填充因子,以便在索引的每個葉級頁上留出額外的間隙和保留一定百分比的空間,供將來表的資料儲存容量進行擴充和減少頁拆分的可能性。填充因子的值是從 0 到 100 的百分比數值,指定在建立索引後對資料頁的填充比例。值為 100 時表示頁將填滿,所留出的儲存空間量最小。只有當不會對資...

重建索引的填充因子

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