Optimizing MySQL Configuration |優化MySQL配置(一)

 

  優化MySQL配置

彼得·扎伊採夫mysql

Percona首席執行官sql

Percona MySQL的大學社區數據庫

 

 

 

議程


  • MySQL 配置文件優化基礎知識
  • 配置MySQL的工具
  • 介紹部分重要的變量選項

 

 

 

 

 

 

關於MySQL 配置文件須要掌握的內容


  • 默認配置比較差
    • Mysql配置不該該按服務器的規格比例去放大配置選項的值
  • 要了解你改變了什麼
    • 不假思索的Google(絕大時候是百度,你懂的)複製/粘貼可很差
  • 避免被改變後的混亂(這裏應該理解爲:設置不一樣的狀況,試驗了以後得出結果,避免錯誤產生)
    • 設置10個變量有可能提升95%的性能在95%的案例裏面
  • 提防Mysql「Sample Configs」的配置
    • 他們(那些配置)太過期
    • 2G內存「很大」是什麼時代的事了?

大多數配置不該該縮放(對比服務器的規格進行縮放)


  • 將服務器的內存擴展8倍,你不能只是簡單的將全部的配置變量乘以8
  • 16GB的內存擴展到128GB的內存(這是個栗子)
    • sort_buffer_size 4MB變成32MB 簡直做死(在沒有確認知道總體服務器的狀況,下文有說爲啥)

 

理解範圍和單位


  • sort_buffer_size=16G
    • 錯!sort_buffer_size是設置每一個鏈接的配置
  • table_cache_size=64M
    • 錯!table_cache_size是設置元素(高速緩存)而跟內存大小無關

 

 

 

 

 

設置本地變量


  • 許多變量是會話級別
    • 能夠只爲當前會話設置
  • 爲一些複雜查詢設置會話變量而不是全局變量:

mysql> set session sort_buffer_size=16*1024*1024;緩存

Query OK,0 rows affected ( 0.00 sec )安全

 

 

 

 

避免基本誤區


  • 在錯的配置文件路徑配置變量
    • 配在/etc/mysql/my.cnf (錯誤)而不是/etc/my.cnf
    • 提防那些依賴於Linux發行版
  • 重複的選項
    • 後面的配置選項會覆蓋寫以前的配置
  • 不知道同義詞
    • table_cache 等價於 table_open_cache
  • 配錯選項配置區域
    • 服務端讀取[mysqld],客戶端讀取[mysql]

 

 

配置管理實踐


  • 保持配置文件在不一樣的服務器上同步同樣
    • 配置文件的同步是錯誤和混亂的一個常見緣由
  • 保留更改記錄
    • 版本控制下的配置文件是最好的
    • 至少保持你的變化記錄

 

 

不要讓Mysql使用Swap分區


  • 有一個MySQL數據庫,而且分配了太多的內存(這是個前提假設相對下面的)
    • 使用swap分區會比沒有使用全部內存更糟糕
  • 監控swap分區使用(用vmstat密切關注si/so )
  • 從安全的緩衝值開始,並逐步增長直到有大量的內存保持free狀態

議程


  • MySQL配置優化基礎知識
  • 用工具配置MySQL
  • 觀察最重要的配置選項點

 

 

自動化配置調優


  • 配置調優工具
    • 工具能經過查看狀態變量(status variables)給出配置建議
  • 諮詢工具
    • 工具能檢查你的配置文件裏面典型性錯誤或者遺漏的地方
  • 基本配置建立工具
    • 工具能給你配置一個初始化的比默認的配置文件更好的配置文件

 

 

下一頁>>服務器


PPT在這裏session

其中有歧義的地方諮詢過公司專業翻譯 -- 餘小雪 妹子,so,轉載請標明出處ide

相關文章
相關標籤/搜索