常用的網站資料庫最佳化方法

來源:互聯網
上載者:User
     在日常工作中,時不時會遇到一個已線上的產品的資料庫出現效能問題,如訪問速度太慢甚至是無法開啟的問題,通過相關工具查看資料往往會見到鎖太多,伺服器的 cup , 記憶體佔用過大的情況,這時候就需要做些最佳化工作了。以下是我所總結的幾種方法,還有什麼好的辦法,希望得到大家的指教。

    1. 靜態化。 對於過於訪問頻繁的頁面我們可以考慮使用靜態化,靜態化包括整個頁面靜態化和資料靜態化。整個頁面靜態化這個好理解;資料靜態化就是將與 資料庫返回的資料形成檔案然後儲存到 XML 之類的檔案中,每次訪問讀的是 XML 檔案資料,待用資料產生時機 一般採用的是 訪問前產生,訪問後產生,產生程式自動產生。何時靜態化,使用什麼樣的靜態化?不同的使用情境需採用不同的靜態建置原則。

    2. 分表。針對每個時間周期產生大量的資料,可以考慮採用一定的策略將資料存到多個資料表中,如論壇按照一個月內的主帖的回帖儲存到一個表中;而主帖的欄位太多,我將其內容 content 欄位 儲存到另外一個表中,避免一個表過大的問題。

    3. 分庫。 就是將系統按照模組相關的特徵分布到不同的資料中,以提高系統整體負載能力。

    4. 定時任務。 如某個相簿,每小時有3000次的訪問,我們要記錄每張圖片的點擊量(每日,每周,每月,總點擊量),但瀏覽時對其即時性要求不高。顯然每次更新圖片的點擊量會成為系統的一個瓶頸,這時候可採取將訪問情況記錄到一個臨時性的點擊表中,每隔一個刻度將其更新回相關地方,然後 truncate 暫存資料表中的資料。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.