2021-02-26 分類: 網站建設
作為一名DBA你是否遇到這種情況?當你埋頭認真工作之時,發(fā)現(xiàn)自己操作的數(shù)據庫變得越來越慢,甚至是卡頓。如何處理?是什么原因導致你的MySQL運行速度變慢呢?
下面小編將帶大家從多方面進行分析是什么導致MySQL數(shù)據庫變慢~
一、 外部的硬件因素
能夠直接影響MySQL服務器性能的系統(tǒng)指標有:CPU、內存、磁盤等的使用情況。
使用 vmstart 查看服務器資源使用情況:
根據上面的反饋結果,可以看得出磁盤的數(shù)據寫入比較大、CPU負載較高,這時需要對正在運行的程序進行優(yōu)化,減小資源負載。
二、 使用不恰當?shù)腟QL語句
例如:
1)在第一條SQL語句中,where 查詢語句中出現(xiàn)了 null,這時數(shù)據庫的引擎不會使用索引,而是對全表進行一次掃描,這樣的查詢將導致數(shù)據庫變慢。
解決方法:使用0來代替null,即第二條SQL語句,可以加快數(shù)據庫查詢速度。
2)在查詢的數(shù)據表當中如果使用 update、delete、insert 過于頻繁,我們可以嘗試使用optimize table 來存放,索引,存儲文件。
3)Select for update 如果條件的字段沒有使用索引的話,就會導致對全表進行查詢,而不是對特定的行進行查詢,需要注意。
下面第一條SQL語句的效率要比第二條SQL語句高的多。因為第一條SQL語句使用的索引查詢;第二條SQL語句是將表中所有的數(shù)據都檢索一遍,相當于全表查詢,比較慢和消耗資源。
三、 MySQL參數(shù)設置有問題
3.1 max_connect_errors
我們知道「max_connect_errors 」正常情況下的默認值是10,它是用來表示受信賬號錯誤的連接次數(shù), 當這個次數(shù)達到了10之后,MySQL服務器就會被自動阻塞住了。 例如下圖這樣的錯誤:
解決方法:
當出現(xiàn)這樣的錯誤時,我們需要 flush hosts 來解除錯誤。其中,max_connect_errors 表示連接中斷重復請求連接的次數(shù)。
對于內網而言,建議將 max_connect_errors 的數(shù)量設置大于10000,這樣就不會輕易阻塞,并且你還得定期進行 flush hosts.
3.2 connect_timeout
「connect_timeout」表示的是MySQL等待應答連接報文的大秒數(shù),當超過這個時間后,表示 MySQL 連接失敗了。 這個值默認值是5S,所以當系統(tǒng)在處于高并發(fā)狀態(tài)下,很容易超時,因此建議將 connect_timeout 設置為10-15秒為宜。
3.3. master-connect-retry
「master-connect-retry」表示的是在重新建立主從連接時,出現(xiàn)連接失敗后,間隔多久可以重試上述過程。 建議將此值設置大一些。
總結:
當你的數(shù)據庫服務器變得很慢,不要驚慌,不妨試一試上述的方法,上文只是例舉一些有用的方法,如果有更好的方法補充,歡迎評論區(qū)留言。
在技術快速發(fā)展的當今社會,云計算已經成為企業(yè)IT部署的選,特別是對于云資源使用的事實監(jiān)控變得尤為重要。云服務器出現(xiàn)CPU負載過高、磁盤IO讀寫壓力過大、內存壓力較大的情況,我們怎么樣才能在第一時間內獲知呢?
在這里我們給大家安利一個運維神器 ---王教授,通過對云資源的實時的監(jiān)控,幫我們發(fā)現(xiàn)云服務器、數(shù)據庫等資源的異常問題,并且將存在的異常信息第一時間通知到團隊個人,大大提升團隊運維效率!
CPU高負載提醒
對于使用云的用戶,只需要綁定賬號的AcessKey,即可連接使用。
網頁題目:MySQL數(shù)據庫服務器越來越慢,如何分析并解決?
當前網址:http://jinyejixie.com/news35/103085.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供服務器托管、商城網站、微信公眾號、移動網站建設、網站改版、網頁設計公司
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內容