原因:1、頻繁的對資料庫操作將影響其他正常使用者的訪問。
2、為了保護資料的安全會牽涉到鎖:資料庫級鎖,表級鎖,塊級鎖,頁級鎖,行級鎖。
3、對資料庫的訪問會牽涉到磁碟io的操作,經過一段時間分析發現**效能差主要是在資料的讀寫。
4、每次讀資料庫的更新操作會寫日誌,減少不必要的磁碟寫入。
解決方法:
1、能合併一條指令的盡量合併成一條(一次查詢將相關的資料寫入到臨時表中,後續的查詢從臨時表中取出相應的資料)
經過對幾個初次寫sql語句分析,發現都一些共同特徵,喜歡頻換連線資料庫進行操作,缺點有以下原因:
1)、在進行連線查詢過程中會關聯多張表進行連線,會消耗大量的cpu,磁碟io。
2)、為了保證資料的一致性,對資料會加鎖,鎖的開銷在多執行緒中是昂貴的。
2、建立合理的中間表:
減少對基礎表的操作,基礎表中的歷史資料可以放到晚上算或者只算一次,將計算過的資料直接寫入到中間表。
3、適當的違反第3正規化進行設計中間表:設計適當的冗餘列,減少查詢過程中連線。 如果幾張資料量非常大的表進行連線標資料導致效能非常差。造成嚴重的使用者體驗。
4、當然推薦使用現狀很火的memcache,redis記憶體資料庫,根據八二準則:80%的請求是 20%的資料上,也就是將20%的熱點資料放到記憶體中,加速訪問速度,提公升使用者的體驗性。
資料庫效能優化
資料庫設計 實現sql server資料庫的優化,首先要有乙個好的資料庫設計方案。在實際工作中,許多sql server方案往往是由於資料庫設計得不好導致效能很差。實現良好的資料庫設計必須考慮這些問題 1.邏輯資料庫規範化問題 一般來說,邏輯資料庫設計會滿足規範化的前3級標準 第1規範 沒有重複的組...
資料庫效能優化
1 系統設計 1 縱向 橫向分割表,減少表的尺寸 縱向 欄位多。按業務主題分割。根據頁大小。橫向 資料多。按條件分割表。eg 按年儲存表,歷史資料表和當期資料更新表。2 將資料處理交給db,編寫儲存過程 1 減少網路的開銷 2 儲存過程是編譯 優化過,速度快。3 唯讀查詢操作優化方法 1 資料量小的...
資料庫效能優化
最近要寫一些關於企業級應用的優化內容的東西,就先從資料庫優化入手吧,在這裡先記錄一下。作為一名有資料庫教育背景的工作人員,我著重從db的角度介紹一下,我認為的db優化方式。首先,撇開經濟商業用處不談,db效能優化的原則主要是,通過盡可能少的磁碟訪問獲得所需的資料。一般而言,資料的是優化可以從三方面分...