關於mySQL資料庫的效能優化

2021-08-30 23:58:59 字數 604 閱讀 6187

1、wait_timeout時間設定

連線數是直接反應資料庫效能好壞的關鍵指標,連線數過多,很可能有多種原因,比如,被一條sql查詢給堵了,造成後面的dml操作等待,又比如,增,刪,改,查操作很頻繁,磁碟io遇到了瓶頸,導致無法處理繁忙的請求,也許有人說增大max_connections值就行了吧,其實,這得看情況,如果你將其設定為500-1000,在大多數場合就可以了,但如果一直增大,就治標不治本了,因為連線數增大,會導致每個鏈結所占用的記憶體也增加,這樣一來,機器就很容易因記憶體不足而宕機,所以得找到引起連線數公升高的本質原因。正常情況下,mysql處理完一條請求後,會根據wait_timeout的值來釋放鏈結,所以,在生產環境,我們一般設定為100秒左右

show variables like '%wait_timeout';

2、資料表死鎖

#死鎖 應用程式在一些場景中,可能會發生死鎖,一般情況下,需要執行show engine innodb status進行檢視,而且可能還抓不到現場程序留下的蛛絲馬跡,在mysql的5.6和5.7版本中,是可以在配置檔案中加入innodb_print_all_deadlocks=1 引數的,這樣就可以把死鎖資訊列印在錯誤日誌裡面了,你get到了嗎? 

效能優化 MySQL資料庫優化

可以從哪幾個方面進行資料庫的優化?如下圖所示 a sql及索引優化 根據需求寫出良好的sql,並建立有效的索引,實現某一種需求可以多種寫法,這時候我們就要選擇一種效率最高的寫法。這個時候就要了解sql優化 b 資料庫表結構優化 根據資料庫的正規化,設計表結構,表結構設計的好直接關係到寫sql語句。c...

資料庫效能優化 MySQL

序 即使有較長的快取有效期和較理想的快取命中率,但是快取的建立和快取過期後的重建都是需要訪問資料庫的。對資料庫寫操作不是很容易引入快取策略。11.1 檢視資料庫狀態 可以通過show status show innodb status 來檢視mysql資料庫的狀態,使用mysqlreport這個第三...

效能優化 mysql資料庫

一 mysql常用命令 1.開啟日誌 1 show global variables like genera 2 set global general log on 3 set global general log off 2.mysql如果開了set autocommit 0,那麼所有的語句一定是...