數(shù)據(jù)庫調優(yōu)積累系列(4):數(shù)據(jù)庫設計
數(shù)據(jù)庫設計:
1、如果某表經常出現(xiàn)死鎖,那就要做對象職責分離,就是把插入、更新、刪除等分離;
2、在設計或創(chuàng)建表的時候,我們往往會把Id字段設置為聚集索引,但是我們這樣的習慣可能不是***的,因為聚集索引和非聚集索引的區(qū)別就是一個是物理存儲的,所以在查詢的時候如果使用聚集索引的話,可能會比非聚集索引要開,因為關系到數(shù)據(jù)頁的分布,因此我們有時可以根據(jù)我們的需要來設置聚集索引,比如待辦待閱一般都是按照時間來倒排的,那我們可以讓日期字段來做聚集索引;
3、當表的數(shù)據(jù)量比較大,而且一些基本的優(yōu)化也不能滿足到需求,那就可以考慮:縱向、橫向分割表,減少表的尺寸(sp_spaceuse);
4、表字段如果不為空的,就不應該設置允許空,***:這里可以確保數(shù)據(jù)的完整性;第二:依稀記得跟性能有關,但是記不起,歡迎補充;
5、在表中設計索引屬性的時候,我們都會看到填充因子,通常情況下我們都是不去理會它的,如果我們去了解它,也許我們會有不錯的回報。(以下是個人言論,有可能存在BUG,不久將來會進一步確認是否正確。)
a、填充因子的意思就是當數(shù)據(jù)頁的數(shù)據(jù)達到多少百分比的時候就換頁,相當以在數(shù)據(jù)頁中預留多少空間來應對數(shù)據(jù)的增長,比如聚集索引,如果我們選擇了100%或者0%,意思就是我們要把整個數(shù)據(jù)頁都填充完整;
b、如果該表有一個以ID自增為聚集索引,而且我們設置的這個比值比較小,就會有可能造成比較多的磁盤碎片,查詢時的IO消耗比較大,這是因為聚集索引在數(shù)據(jù)頁的表現(xiàn)是物理存儲,索引每個數(shù)據(jù)頁都會留下比較多的數(shù)據(jù)頁空間,而且是永遠都不會給使用到的;
c、只有當索引被創(chuàng)建或者是重建時才會重新設置數(shù)據(jù)頁的百分比分布,當做插入數(shù)據(jù)后,改數(shù)據(jù)頁的比例就會小于這個百分比了;
關于數(shù)據(jù)庫設計的知識就為大家介紹到這里,相信通過上文中的介紹大家對數(shù)據(jù)庫設計已經了解了,希望大家都能夠從中有所收獲。
【編輯推薦】






















