當前位置:吉日网官网 - 油畫收藏 - 大數據量的數據庫表設計技巧

大數據量的數據庫表設計技巧

大數據量的數據庫表設計技巧

即使是壹個非常簡單的數據庫應用系統,它的數據量增加到壹定程度也會引起發壹系列問題。如果在設計數據庫的時候,就提前考慮這些問題,可以避免由於系統反映遲緩而引起的用戶抱怨。

技巧1:盡量不要使用代碼。比如性別這個字段常見的做法:1代表男,0代表女。這樣的做法意味著每壹次查詢都需要關聯代碼表。

技巧2:歷史數據中所有字段與業務表不要有依賴關系。如保存打印發票的時候,不要只保留單位代碼,而應當把單位名稱也保存下來。

技巧3:使用中間表。比如職工工資,可以把每壹位職工工資的合計保存在壹張中間表中,當職工某壹工資項目發生變化的時候,同時對中間表的數據做相應更新。

技巧4:使用統計表。需要經常使用的統計數據,生成之後可以用專門的表來保存。

技巧5:分批保存歷史數據。歷史數據可以分段保存,比如2003年的歷史數據保存在 《2003表名》中,而2004年的歷史數據則保存在《2004表名》中。

技巧6:把不常用的數據從業務表中移到歷史表。比如職工檔案表,當某壹職工離開公司以後,應該把他的職工檔案表中的信息移動到《離職職工檔案表》中。

1、經常查詢的和不常用的分開幾個表,也就是橫向切分

2、把不同類型的分成幾個表,縱向切分

3、常用聯接的建索引

4、服務器放幾個硬盤,把數據、日誌、索引分盤存放,這樣可以提高IO吞吐率

5、用優化器,優化妳的查詢

6、考慮冗余,這樣可以減少連接

7、可以考慮建立統計表,就是實時生成總計表,這樣可以避免每次查詢都統計壹次

8、用極量數據測試壹下數據

速度,影響它的因數太多了,且數據量越大越明顯。

1、存儲將硬盤分成NTFS格式,NTFS比FAT32快,並看妳的數據文件大小,1G以上妳可以采用多數據庫文件,這樣可以將存取負載分散到多個物理硬盤或磁盤陣列上。

2、tempdbtempdb也應該被單獨的物理硬盤或磁盤陣列上,建議放在RAID0上,這樣它的性能最高,不要對它設置最大值讓它自動增長

3、日誌文件日誌文件也應該和數據文件分開在不同的理硬盤或磁盤陣列上,這樣也可以提高硬盤I/O性能。

4、分區視圖就是將妳的數據水平分割在集群服務器上,它適合大規模OLTP,SQL群集上,如果妳數據庫不是訪問特別大不建議使用。

5、簇索引妳的表壹定有個簇索引,在使用簇索引查詢的時候,區塊查詢是最快的,如用between,應為他是物理連續的,妳應該盡量減少對它的updaet,應為這可以使它物理不連續。

6、非簇索引非簇索引與物理順序無關,設計它時必須有高度的可選擇性,可以提高查詢速度,但對表update的時候這些非簇索引會影響速度,且占用空間大,如果妳願意用空間和修改時間換取速度可以考慮。

7、索引視圖如果在視圖上建立索引,那視圖的結果集就會被存儲起來,對與特定的查詢性能可以提高很多,但同樣對update語句時它也會嚴重減低性能,壹般用在數據相對穩定的數據倉庫中。

8、維護索引妳在將索引建好後,定期維護是很重要的,用dbccshowcontig來觀察頁密度、掃描密度等等,及時用dbccindexdefrag來整理表或視圖的索引,在必要的時候用dbccdbreindex來重建索引可以受到良好的效果。

不論妳是用幾個表1、2、3點都可以提高壹定的性能,5、6、8點妳是必須做的,至於4、7點看妳的需求,我個人是不建議的。

  • 上一篇:城南舊事惠安亭的主要內容
  • 下一篇:頭號玩家的原型——80年代的尋寶
  • copyright 2024吉日网官网