本文為大家分享了數(shù)據(jù)庫優(yōu)化方案,供大家參考,具體內(nèi)容如下
1. 利用表分區(qū)
分區(qū)將數(shù)據(jù)在物理上分隔開,不同分區(qū)的數(shù)據(jù)可以制定保存在處于不同磁盤上的數(shù)據(jù)文件里。這樣,當(dāng)對這個表進行查詢時,只需要在表分區(qū)中進行掃描,而不必進行全表掃描,明顯縮短了查詢時間,另外處于不同磁盤的分區(qū)也將對這個表的數(shù)據(jù)傳輸分散在不同的磁盤I/O,一個精心設(shè)置的分區(qū)可以將數(shù)據(jù)傳輸對磁盤I/O競爭均勻地分散開。對數(shù)據(jù)量大的時時表可采取此方法。可按月自動建表分區(qū)。
2. 別名的使用
別名是大型數(shù)據(jù)庫的應(yīng)用技巧,就是表名、列名在查詢中以一個字母為別名,查詢速度要比建連接表快1.5倍。
3. 索引Index的優(yōu)化設(shè)計
索引可以大大加快數(shù)據(jù)庫的查詢速度。但是并不是所有的表都需要建立索引,只針對大數(shù)據(jù)量的表建立索引就好。
缺點:
1.創(chuàng)建索引和維護索引要耗費時間,這種時間隨著數(shù)據(jù)量的增加而增加。
2.索引需要占物理空間,除了數(shù)據(jù)表占數(shù)據(jù)空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會更大。
3.當(dāng)對表中的數(shù)據(jù)進行增加、刪除和修改的時候,索引也要動態(tài)的維護,這樣就降低了數(shù)據(jù)的維護速度。
索引需要維護:為了維護系統(tǒng)性能,索引在創(chuàng)建之后,由于頻繁地對數(shù)據(jù)進行增加、刪除、修改等操作使得索引頁發(fā)生碎塊,因此,必須對索引進行維護。
4. 物化視圖(索引視圖)
一般的視圖是虛擬的,而物化視圖是實實在在的數(shù)據(jù)區(qū)域,是要占據(jù)存儲空間的,另外系統(tǒng)刷新物化視圖也需要耗費一定的資源,但是它卻換來了效率和靈活性。
索引視圖更適合在OLAP(讀取較多,更新較少)的數(shù)據(jù)庫中使用,不適合在OLTP(記錄即時的增、刪、改、查)的數(shù)據(jù)庫中使用 。
物化視圖的注意事項:
1.對于復(fù)雜而高消耗的查詢,如果使用頻繁,應(yīng)建成物化視圖。
2.物化視圖是一種典型的以空間換時間的性能優(yōu)化方式。
3.對于更新頻繁的表慎用物化視圖。
4.選擇合適的刷新方式。
普通視圖和物化視圖的區(qū)別:
普通視圖和物化視圖根本就不是一個東西,普通視圖是不存儲任何數(shù)據(jù)的,在查詢中是轉(zhuǎn)換為對應(yīng)定義的SQL去查詢,而物化視圖是將數(shù)據(jù)轉(zhuǎn)換為一個表,實際存儲著數(shù)據(jù),這樣查詢數(shù)據(jù),就不用關(guān)聯(lián)一大堆表,如果表很大的話,會在臨時表空間內(nèi)做大量的操作。
普通視圖的三個特征:
1).簡化設(shè)計,方便,清晰編碼。視圖并不是提高性能的,它的存在只會降低性能(例如我們關(guān)聯(lián)兩個視圖,一個視圖關(guān)聯(lián)6個表,另一個視圖關(guān)聯(lián)7個表)。
2).安全,在授權(quán)給其他用戶或者查看角度,多個表關(guān)聯(lián)只允許查看,不允許修改。
3.從不同的角度看不同的維度,視圖可以劃分維度和權(quán)限,并使多個維度的綜合,也就是你要什么就可以從不同的角度看,而表是一個實體的而已,一般維度較少。
5. 死鎖與阻塞
1).對于需要頻繁更新的數(shù)據(jù),盡量避免放在長事務(wù)中,以免導(dǎo)致連鎖反應(yīng)。
2).不是迫不得已,最好不要在數(shù)據(jù)庫鎖機制外再加自己設(shè)計的鎖。
3).減少事務(wù)大小,及時提交事務(wù)。
4).盡量避免跨數(shù)據(jù)庫的分布式事務(wù),因為環(huán)境的復(fù)雜性,很容易導(dǎo)致阻塞。
5).慎用位圖索引,更新時容易導(dǎo)致死鎖。
6.減少IO與網(wǎng)絡(luò)傳輸次數(shù)
1).盡量用較少的數(shù)據(jù)庫請求,獲取到需要的數(shù)據(jù),能一次性取出的不分多次取出。
2).對于頻繁操作數(shù)據(jù)庫的批量操作,應(yīng)采用存儲過程,減少不必要的網(wǎng)絡(luò)傳輸。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:- 優(yōu)化Mysql數(shù)據(jù)庫的8個方法
- mysql數(shù)據(jù)庫優(yōu)化總結(jié)(心得)
- MySQL數(shù)據(jù)庫優(yōu)化詳解
- Oracle SQL tuning 數(shù)據(jù)庫優(yōu)化步驟分享(圖文教程)
- SQL Server數(shù)據(jù)庫的高性能優(yōu)化經(jīng)驗總結(jié)
- mysql數(shù)據(jù)庫查詢優(yōu)化 mysql效率
- mysql 數(shù)據(jù)庫中my.ini的優(yōu)化 2G內(nèi)存針對站多 抗壓型的設(shè)置
- 開啟SQLSERVER數(shù)據(jù)庫緩存依賴優(yōu)化網(wǎng)站性能
- oracle數(shù)據(jù)庫sql的優(yōu)化總結(jié)
- MySQL 聯(lián)合索引與Where子句的優(yōu)化 提高數(shù)據(jù)庫運行效率