• 網站優化之數據庫優化

    來源:本站日期:2018/8/10

      如何確定數據庫是瓶頸?1如果程序設計良好,有一個數據庫操作邏輯層,可以從這個層的統計數據看到每個請求花費的時間,如果平均時間已經不能讓你容忍的話,數據庫已經是瓶頸了。2在數據庫的服務器上使用top命令,看看mysql服務器占用資源的情況

      如何確定數據庫是瓶頸?

    1如果程序設計良好,有一個數據庫操作邏輯層,可以從這個層的統計數據看到每個請求花費的時間,如果平均時間已經不能讓你容忍的話,數據庫已經是瓶頸了。

    2在數據庫的服務器上使用top命令,看看mysql服務器占用資源的情況,看看機子的平均負載。

    如果服務器的平均負載已經很高,mysql占用了塊100%的cpu資源,說明mysql服務器很忙了。

    3在數據庫服務器上使用iostat命令,看看磁盤IO,如果block住的操作比較多的話,說明數據庫操作還是過于頻繁了,磁盤都響應不急了。

    4建議打開mysql的慢查詢日志,這樣grepselect看一下日志中的慢查詢的數量,如果數量較多,說明慢查詢的數量很多,需要進行調整了。

    5如果有一天數據庫無法插入了,需要檢查一下數據庫表是不是過大了。32位的操作系統上一個表最大的容量是2^32這么大。不過還是建議增加一個數據庫操作的邏輯層,在數據庫操作的前后記錄下操作的時間,進行統計上報,利用監控程序來報警相關負責人,這樣可以及早的知道數據庫是瓶頸,提前做出優化。

    知道數據庫是瓶頸了,如何來進行優化呢?

    1我們第一個想到是看看數據庫的容量是不是太大了,如果數據庫表太大的話,索引文件也會比較大,每次的更新操作就會更加的費時。需要考慮進行分庫和分表了。

    分庫分表按照一定的規則來對數據庫中的記錄進行分區來存儲,一方面可以做到一定的負載均衡,將請求平分下來,每個區段去獨自承受;另一方面,分庫分表可以使我們存儲和操作更多的數據。

    不過分庫分表需要多之前基于單庫的程序進行修改,存在一定的風險,因此,在程序設計之初就應該考慮到分庫分表的需要,最好是將數據庫操作層獨立出來,便于擴展和更改。

    2如果數據庫表不是很大,但是查詢慢的話,我們需要檢查一下我們的sql查詢語句,利用mysql的explain語句看看是不是使用了索引,如果沒有使用索引,那我們需要在相應的字段上建上索引,反復的使用explain,尋找到個一個合適的索引。


    關鍵詞標簽:廣州網站建設,網站優化之數據庫優化,網站制作/改版優化

    0
    成年美女黄网站色奶头游戏