|
優化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
|
|
設置本地變量
- 許多變量是會話級別的
- 爲一些複雜查詢設置會話變量而不是全局變量:
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分區使用(用vmstat密切關注si/so )
- 從安全的緩衝值開始,並逐步增長直到有大量的內存保持free狀態
|
|
議程
- MySQL配置優化基礎知識
- 用工具配置MySQL
- 觀察最重要的配置選項點
|
|
自動化配置調優
- 配置調優工具
- 工具能經過查看狀態變量(status variables)給出配置建議
- 諮詢工具
- 工具能檢查你的配置文件裏面典型性錯誤或者遺漏的地方
- 基本配置建立工具
- 工具能給你配置一個初始化的比默認的配置文件更好的配置文件
|
|
下一頁>>服務器
PPT在這裏session
其中有歧義的地方諮詢過公司專業翻譯 -- 餘小雪 妹子,so,轉載請標明出處ide