共計 1482 個字符,預計需要花費 4 分鐘才能閱讀完成。
今天就跟大家聊聊有關怎么淺談數據庫優化方案,可能很多人都不太了解,為了讓大家更加了解,丸趣 TV 小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
下面給大家分析了數據庫優化方案,具體內容如下
1. 利用表分區
分區將數據在物理上分隔開,不同分區的數據可以制定保存在處于不同磁盤上的數據文件里。這樣,當對這個表進行查詢時,只需要在表分區中進行掃描,而不必進行全表掃描,明顯縮短了查詢時間,另外處于不同磁盤的分區也將對這個表的數據傳輸分散在不同的磁盤 I /O,一個精心設置的分區可以將數據傳輸對磁盤 I / O 競爭均勻地分散開。對數據量大的時時表可采取此方法。可按月自動建表分區。
2. 別名的使用
別名是大型數據庫的應用技巧,就是表名、列名在查詢中以一個字母為別名,查詢速度要比建連接表快 1.5 倍。
3. 索引 Index 的優化設計
索引可以大大加快數據庫的查詢速度。但是并不是所有的表都需要建立索引,只針對大數據量的表建立索引就好。
缺點:
1. 創建索引和維護索引要耗費時間,這種時間隨著數據量的增加而增加。
2. 索引需要占物理空間,除了數據表占數據空間之外,每一個索引還要占一定的物理空間,如果要建立聚簇索引,那么需要的空間就會更大。
3. 當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。索引需要維護:為了維護系統性能,索引在創建之后,由于頻繁地對數據進行增加、刪除、修改等操作使得索引頁發生碎塊,因此,必須對索引進行維護。
4. 物化視圖(索引視圖)
一般的視圖是虛擬的,而物化視圖是實實在在的數據區域,是要占據存儲空間的,另外系統刷新物化視圖也需要耗費一定的資源,但是它卻換來了效率和靈活性。索引視圖更適合在 OLAP(讀取較多,更新較少)的數據庫中使用,不適合在 OLTP(記錄即時的增、刪、改、查)的數據庫中使用。
物化視圖的注意事項:
1. 對于復雜而高消耗的查詢,如果使用頻繁,應建成物化視圖。
2. 物化視圖是一種典型的以空間換時間的性能優化方式。
3. 對于更新頻繁的表慎用物化視圖。
4. 選擇合適的刷新方式。
普通視圖和物化視圖的區別:普通視圖和物化視圖根本就不是一個東西,普通視圖是不存儲任何數據的,在查詢中是轉換為對應定義的 SQL 去查詢,而物化視圖是將數據轉換為一個表,實際存儲著數據,這樣查詢數據,就不用關聯一大堆表,如果表很大的話,會在臨時表空間內做大量的操作。
普通視圖的三個特征:
1). 簡化設計,方便,清晰編碼。視圖并不是提高性能的,它的存在只會降低性能(例如我們關聯兩個視圖,一個視圖關聯 6 個表,另一個視圖關聯 7 個表)。
2). 安全,在授權給其他用戶或者查看角度,多個表關聯只允許查看,不允許修改。
3. 從不同的角度看不同的維度,視圖可以劃分維度和權限,并使多個維度的綜合,也就是你要什么就可以從不同的角度看,而表是一個實體的而已,一般維度較少。
5. 死鎖與阻塞
1). 對于需要頻繁更新的數據,盡量避免放在長事務中,以免導致連鎖反應。
2). 不是迫不得已,最好不要在數據庫鎖機制外再加自己設計的鎖。
3). 減少事務大小,及時提交事務。
4). 盡量避免跨數據庫的分布式事務,因為環境的復雜性,很容易導致阻塞。
5). 慎用位圖索引,更新時容易導致死鎖。
6. 減少 IO 與網絡傳輸次數
1). 盡量用較少的數據庫請求,獲取到需要的數據,能一次性取出的不分多次取出。
2). 對于頻繁操作數據庫的批量操作,應采用存儲過程,減少不必要的網絡傳輸。
看完上述內容,你們對怎么淺談數據庫優化方案有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注丸趣 TV 行業資訊頻道,感謝大家的支持。