Mysql優化中遇到的問題和感受

2021-07-08 09:21:48 字數 958 閱讀 1244

根據客戶需求那邊的需求現有2臺資料庫伺服器,一台做主機一台做從機:

由於客戶現場的資料庫伺服器配置很高(cpu12核心,記憶體32gb,16tb的硬碟),所以需要對資料庫進行優化,在網上找了一大堆的mysql優化文章之後,就根據實際情況來更改my.cnf檔案(linux伺服器,windows為my.ini),其中有乙個配置引數的thread_concurrency,借用一下網上的解釋:

thread_concurrency的值的正確與否, 對mysql的效能影響很大,

在多個cpu(或多核)的情況下,錯誤設定了thread_concurrency的值, 會導致mysql不能充分利用多cpu(或多核),

出現同一時刻只能乙個cpu(或核)在工作的情況。 thread_concurrency應設為cpu核數的2倍. 比如有乙個雙核的cpu,

那thread_concurrency 的應該為4; 2個雙核的cpu, thread_concurrency的值應為8.

著手開始改吧,我想我也不改2倍了直接改一倍就改為12得了,另外還修改了一下innodb_buffer_pool_size=10240m 這個引數可為可用記憶體的80%,我還是保守點吧設定個10g,當時重啟了一下mysql無任何問題,正常可以使用,檢視**的拿到資料的速度和以前也有了很大的提高(10倍左右),這個事就告知客戶就這樣悄悄結束了….

就在昨天客戶通知我,說資料庫占用cpu過高,導致程式執行緩慢,我遠端top檢視了一下的確很高,後來客戶那邊的運維人員打算重啟一下mysql,問題出現了mysql重啟失敗,然後就開始喊我。晚上到家後我開始找原因吧,找啊找,各種網上的辦法都試過了,包括沒有讀寫許可權的問題,日誌檔案過多的問題,但是最後我還是通過檢視錯誤日誌看到報錯,說什麼setting value 12o thread***xx,我想應該是設定什麼執行緒值導致,我首先想到了配置檔案中有這個設定執行緒的地方,而且還是12,我就嘗試更改了一下,然後重啟一下mysql果然成功。

mysql使用中遇到的問題

問題一 第一次mysql啟動服務失敗,未返回報錯資訊 解決方法 執行 mysqld console命令,檢視error資訊,對症下藥 但一般情況下,主要是因為mysql目錄下的data資料夾中內容不正確,解決方法有以下兩個 1.在開啟服務前執行初始化命令 mysqld initalize 然後啟動服...

Django中遇到的mysql問題

最近在用django寫個 連線mysql的時候出現了幾個問題,總結一下 寫好setting.py和models.py後,syncdb都沒什麼問題,在測試後台發表文章的時候就出錯了,本來是測試markdown的與codelite 高亮,發現發表後debug模式就報錯 error warning inc...

apc優化遇到的問題

模式 驗證條件 驗證型別 動作輸出情況 cli伺服器負載1000 apctime php t2.php 平均 user sys 0.3s include time php t.php 平均 user sys 0.3s apache 伺服器負載16 apc瀏覽器請求 266 601 ms includ...