系統效能的提公升之二 聚集索引 的建立

2021-09-08 23:33:38 字數 1060 閱讀 3576

以前對資料庫也有過一段時間的研究,對資料庫的物理儲存機制也有所了解,剛看了

freedk

寫的《sql server 索引結構及其使用

》受益非淺,我也真的意識到,資料庫索引對系統效能的重要性。

在我的傳統觀念中,主鍵一般是應該設為聚集索引的,但現在有了新的認識,主鍵主要意義在於「唯一標識記錄」關於主鍵的設計我也不再詳述,可以參照我的《

資料庫主鍵設計之思考

》,而索引主要是「提高資料庫效能」,尤其是「聚集索引」。

而現在我會注重資料庫索引的建立,最關鍵的就是聚集索引,「聚集索引」與「非聚集索引」的理解很簡單:「聚集索引」就是物理上的排列方式,而「非聚集索引」是使用索引表(相當於書的目錄),使用索引之所以能提高效能,也就是「避免全表掃瞄」。

因此乙個表只能有乙個「聚集索引」,因為在物理上,不可能會有「兩種」物理存放方式吧。也真是如此「聚集索引」對查詢效能的影響最大,所以要非常注意「聚集索引」的建立,我目前意識到、也是freedk所推薦的「單據日期」作為聚集索引,我說的「單據日期」是指日常業務性的記錄,一般都是會有乙個日期欄位的,而80%查詢中都會用到此"日期字段",而且把它放在where的第乙個效果最佳,因為會在指定的區域內進行其他條件的查詢,範圍少了很多很多,效能效果提高明顯。 

至於其他的索引,這只要根據業務的需要,對於一些會進行查詢的字段進行一定的索引,也就是盡可能的「避免全表掃瞄」就可以提高系統效能。當然過多的索引也會引起系統負擔,想想要建那麼多「目錄」自然會增加負擔了。

還有「聚集索引」由於是物理儲存的,效能上固然是提高了,但對於插入與刪除,會引起資料的「移動」(在中間插入一條記錄,會引起後半部分記錄的後移),當然資料庫有自己的儲存機制,會採用「頁」來進行分塊儲存,可以避免一定的「移動」,所以「聚集索引」最好是在「大部分」情況下可以「遞增」,我們目前採用的「單據日期」也剛好是符合這個條件的。

sql server 索引結構及其使用(一)***

sql server 索引結構及其使用(二)***

sql server 索引結構及其使用(三)***

sql server 索引結構及其使用(四)*** 00 0

(請您對文章做出評價)

系統效能的提公升之二 聚集索引 的建立

以前對資料庫也有過一段時間的研究,對資料庫的物理儲存機制也有所了解,剛看了freedk 寫的 sql server 索引結構及其使用 受益非淺,我也真的意識到,資料庫索引對系統效能的重要性。在我的傳統觀念中,主鍵一般是應該設為聚集索引的,但現在有了新的認識,主鍵主要意義在於 唯一標識記錄 關於主鍵的...

高併發系統設計二 如何提公升系統效能

我們需要有度量的指標,有了資料才能明確目前存在的效能問題,也能夠用資料來評估效能優化的效果。響應時間控制在多久比較合適呢?從使用者體驗的角度來說 健康系統的 99 分位值的響應時間通常通知在 200 ms 之內,不超過 1s 的請求佔比要在 99.99 以上。1 提公升系統的處理核心數 增加系統的並...

華為儲存助力比亞迪提公升ERP系統效能,「跑」的更快

erp公升級,如何以效率支撐生產 比亞迪股份 創立於1995年,擁有it,汽車及新能源三大產業群。在廣東 北京 陝西 上海等地共建有九大生產基地,總面積將近700萬平方公尺,員工總數超過18萬人。比亞迪erp系統的儲存系統採購於5年前,這幾年隨著比亞迪業務高速發展,效能方面亟待提公升。erp系統是製...