• MySQL數據庫服務器端核心參數詳解和推薦配置之一

    0
    MySQL SQL 數據庫 C/C++ 12224 次瀏覽
    MySQL手冊上也有服務器端參數的解釋,以及參數值的相關說明信息,現針對我們大家重點需要注意、需要修改或影響性能的服務器端參數,作其用處的解釋和 如何配置參數值的推薦,此事情拖了不少時間,為方便大家幫忙糾錯(注:總是斷斷續續寫的,可能存在筆誤),先以文章的方式發布到網站,后續確定沒問題,將 會通過新浪微博的微盤提供PPT下載,方便學習和參考。
    l  lower_case_table_names
       Linux或類Unix平臺,對文件名稱大小寫敏感,也即對數據庫、表、存儲過程等對象名稱大小寫敏 感,為減少開發人員的開發成本,為此推薦大家設置該參數使對象名稱都自動轉換成小寫;
    l  max_connect_errors
        max_connect_errors默認值為10,也即mysqld線程沒重新啟動過,一臺物理服務器只要連接 異常中斷累計超過10次,就再也無法連接上mysqld服務,為此建議大家設置此值至少大于等于10W; 若異常中斷累計超過參數設置的值,有二種解決辦法,執行命令:FLUSH HOSTS;或者重新啟動mysqld服務;
    l  interactive_timeout  and wait_timeout
    u  interactive_timeout
           處于交互狀態連接的活動被服務器端強制關閉,而等待的時間,單位:秒;
    u  wait_timeout
           與服務器端無交互狀態的連接,直到被服務器端強制關閉而等待的時間,此參數只對基于TCP/IP或基于 Socket通信協議建立的連接才有效,單位:秒;
    u  推薦設置
         interactive_timeout = 172800
         wait_timeout  = 172800
    l  transaction-isolation  and binlog-format
    u  transaction-isolation
          可供設置的值:READ-UNCOMMITTED、READ-COMMITTED、REPEATABLE-READ、
    SERIALIZABLE,默認的值為: REPEATABLE-READ,事務隔離級別設置的不同,對二進制日志登記格
    式影響非常大,詳細信息可見文章解讀MySQL事務的隔離級別和日志登記模式選擇技巧;
    u  binlog-format
           復制的模式,可供設置的值:STATEMENT、ROW、MIXED(注:5.0.*只有命令行式復制),
    5.1.*版本默認設置:MIXED;
    u  推薦配置
    ①   只讀為主的業務應用場景
                 transaction-isolation =  read-committed
                 binlog-format  = mixed            #5.1.*版本,5.0.*只能設置為 statement
    ①   非只讀為主的業務應用場景
                 transaction-isolation = repeatabled-read
                 binlog-format  = mixed            #5.1.*版本,5.0.*只能設置為 statement
    l  event_scheduler
    事務調度默認是關閉狀態,也推薦源碼編譯的版本可不編譯進來,以及實際生產環境保持默認禁用 狀態,當真正需要用的時候,可以臨時打開,命令:SET GLOBAL event_scheduler=1;
    l  skip_external_locking
    外部鎖,也即操作系統所實施的鎖,只對MyISAM引擎有效,且容易造成死鎖發生,為此我們一律禁用;
    l  innodb_adaptive_hash_index
    InnoDB引擎會根據數據的訪問頻繁度,把表的數據逐漸緩到內存,若是一張表的數據大量緩存在 內存中,則使用散列索引(注:Hash Index)會更高效。InnoDB內有Hash Index機制,監控數據的訪 問情況,可以自動創建和維護一個Hash Index,以提供訪問效率,減少內存的使用;
    l  innodb_max_dirty_pages_pct
        InnoDB主線程直接更新Innodb_buffer_pool_size中存在的數據,并且不實時刷回磁盤,而是等待 相關的處罰事件發生,則允許緩存空間的數據量不實時刷回磁盤的最大百分比。比例設置較小,有利于 減少mysqld服務出現問題的時候恢復時間,缺點則是需要更多的物理I/O,為此我們必須根據業務特點 和可承受范圍進行一個折中,一般范圍建議設置為5%~90%,像我們SNS游戲行業的寫非常厲害,綜合 各方面因素,設置為20%;

    相似問題

    相關經驗

    相關資訊

    相關文檔

  • sesese色