13 MySql高階之併發引數調整

2021-10-08 17:15:37 字數 1338 閱讀 4564

☆從實現上來說,mysql server 是多執行緒結構,包括後台執行緒和客戶服務執行緒。多執行緒可以有效利用伺服器資源,提高資料庫的併發效能。在mysql中,控制併發連線和執行緒的主要引數包括 max_connections、back_log、thread_cache_size、table_open_cahce。

採用max_connections 控制允許連線到mysql資料庫的最大數量,預設值是 151。如果狀態變數 connection_errors_max_connections 不為零,並且一直增長,則說明不斷有連線請求因資料庫連線數已達到允許最大值而失敗,這是可以考慮增大max_connections 的值。

mysql 最大可支援的連線數,取決於很多因素,包括給定作業系統平台的執行緒庫的質量、記憶體大小、每個連線的負荷、cpu的處理速度,期望的響應時間等。在linux 平台下,效能好的伺服器,支援 500-1000 個連線不是難事,需要根據伺服器效能進行評估設定。

back_log 引數控制mysql監聽tcp埠時設定的積壓請求棧大小。如果mysql的連線數達到max_connections時,新來的請求將會被存在堆疊中,以等待某一連線釋放資源,該堆疊的數量即back_log,如果等待連線的數量超過back_log,將不被授予連線資源,將會報錯。

5.6.6 版本之前預設值為 50 , 之後的版本預設為 50 + (max_connections / 5), 但最大不超過900。

如果需要資料庫在較短的時間內處理大量連線請求, 可以考慮適當增大back_log 的值。

該引數用來控制所有sql語句執行執行緒可開啟表快取的數量, 而在執行sql語句時,每乙個sql執行執行緒至少要開啟 1 個表快取。該引數的值應該根據設定的最大連線數 max_connections 以及每個連線執行關聯查詢中涉及的表的最大數量來設定 。

為了加快連線資料庫的速度,mysql 會快取一定數量的客戶服務執行緒以備重用,通過引數thread_cache_size 可控制 mysql 快取客戶服務執行緒的數量。

該引數是用來設定innodb 事務等待行鎖的時間,預設值是50ms, 可以根據需要進行動態設定。對於需要快速反饋的業務系統來說,可以將行鎖的等待時間調小,以避免事務長時間掛起; 對於後台執行的批量處理程式來說, 可以將行鎖的等待時間調大, 以避免發生大的回滾操作。

MySQL必知必會 13MySQL高階聯結

使用表別名 select cust name cust contact from customers as c orders as o orderitems as oi where c cust id o cust id and oi order num o order num and prod i...

(1 3)MySQL 基本操作

整理自 慕課網 mysql概述 目錄 1 啟動 關閉mysql服務 2 mysql登入與退出 3 mysql常用命令及語法規範 3.1修改提示符 3.2 常用命令 3.3mysql語句的規範 開啟cmd命令視窗,由於已配置mysql系統環境變數,所以可以在任何目錄下啟動和停止mysql服務。1 啟動...

MySQL學習13 MySQL日誌

日誌 描述重做日誌 redo log 一種物理格式的日誌,記錄的是物理資料頁面的修改的資訊,其redo log是順序寫入redo log file的物理檔案中去的。回滾日誌 undo log 一種邏輯格式的日誌,在執行undo的時候,僅僅是將資料從邏輯上恢復至事務之前的狀態,而不是從物理頁面上操作實...