日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql5.6优化建议

發布時間:2023/12/19 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql5.6优化建议 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這篇文章主要介紹了MySQL5.6基本優化配置,詳細分解了MySQL5.6需要優化的配置項,最終給出了一個優化案例,需要的朋友可以參考下

隨著 大量默認選項的改進, MySQL 5.6比以前版本需要調優的選項大為減少. 在本文中我將講述需要優化的配置項.

?

InnoDB設置

1.innodb_buffer_pool_size? —— 默認值為 128M. 這是最主要的優化選項,因為它指定 InnoDB 使用多少內存來加載數據和索引(data+indexes). 針對專用MySQL服務器,建議指定為物理內存的 50-80%這個范圍. 例如,擁有64GB物理內存的機器,緩存池應該設置為50GB左右.?
如果將該值設置得更大可能會存在風險,比如沒有足夠的空閑內存留給操作系統和依賴文件系統緩存的某些MySQL子系統(subsystem),包括二進制日志(binary logs),InnoDB事務日志(transaction logs)等.

2.innodb_log_file_size?—— 默認值為 48M. 有很高寫入吞吐量的系統需要增加該值以允許后臺檢查點活動在更長的時間周期內平滑寫入,得以改進性能. 將此值設置為4G以下是很安全的. 過去的實踐表明,日志文件太大的缺點是增加了崩潰時所需的修復時間,但這在5.5和5.6中已得到重大改進.

3.innodb_flush_method? —— 默認值為 fdatasync. 如果使用 硬件RAID磁盤控制器, 可能需要設置為 O_DIRECT. 這在讀取InnoDB緩沖池時可防止“雙緩沖(double buffering)”效應,否則會在文件系統緩存與InnoDB緩存間形成2個副本(copy).?
如果不使用硬件RAID控制器,或者使用SAN存儲時, O_DIRECT 可能會導致性能下降.MySQL用戶手冊 和 Bug #54306? 詳細地說明了這一點.

4.innodb_flush_neighbors?—— 默認值為 1. 在SSD存儲上應設置為0(禁用) ,因為使用順序IO沒有任何性能收益. 在使用RAID的某些硬件上也應該禁用此設置,因為邏輯上連續的塊在物理磁盤上并不能保證也是連續的.

5.innodb_io_capacity and innodb_io_capacity_max?—— 這些設置會影響InnoDB每秒在后臺執行多少操作. 如果你深度了解硬件性能(如每秒可以執行多少次IO操作),則使用這些功能是很可取的,而不是讓它閑著.


有一個很好的類比示例:? 假如某次航班一張票也沒有賣出去 —— 那么讓稍后航班的一些人乘坐該次航班,有可能是很好的策略,以防后面遇到惡劣的天氣. 即有機會就將后臺操作順便處理了,以減少同稍后可能的實時操作產生競爭.

?有一個很簡單的計算:? 如果每個磁盤每秒讀寫(IOPS)可以達到 200次, 則擁有10個磁盤的 RAID10 磁盤陣列IOPS理論上 =(10/2)* 200 = 1000. 我說它“很簡單”,是因為RAID控制器通常能夠提供額外的合并,并有效提高IOPS能力. 對于SSD磁盤,IOPS可以輕松達到好幾千.

?將這兩個值設置得太大可能會存在某些風險,你肯定不希望后臺操作妨礙了前臺任務IO操作的性能. 過去的經驗表明,將這兩個值設置的太高,InnoDB持有的內部鎖會導致性能降低(按我了解到的信息,在MySQL5.6中這得到了很大的改進).

innodb_lru_scan_depth?- 默認值為 1024. 這是mysql 5.6中引入的一個新選項. Mark Callaghan? 提供了 一些配置建議. 簡單來說,如果增大了 innodb_io_capacity 值, 應該同時增加 innodb_lru_scan_depth.


復制(Replication)

假如服務器要支持主從復制,或按時間點恢復,在這種情況下,我們需要:

1.log-bin?—— 啟用二進制日志. 默認情況下二進制日志不是事故安全的(not crash safe),但如同我 以前的文章所說, 我建議大多數用戶應該以穩定性為目標. 在這種情況下,你還需要啟用:?sync_binlog=1, sync_relay_log=1, relay-log-info-repository=TABLE and master-info-repository=TABLE.

2.expire-logs-days?—— 默認舊日志會一直保留. 我推薦設置為 1-10 天. 保存更長的時間并沒有太多用處,因為從備份中恢復會快得多.

3.server-id?—— 在一個主從復制體系(replication topology )中的所有服務器都必須設置唯一的 server-id.

4.binlog_format=ROW? —— 修改為基于行的復制. 我最近寫的另一篇 基于行的復制 ,里面敘述了我真的很喜歡它的原因,因為它可以通過減少資源鎖定提高性能. 此外還需要啟用兩個附加設置:? transaction-isolation=READ-COMMITTED and? innodb_autoinc_lock_mode = 2.

其他配置(Misc)

1.timezone=GMT? 將時區設置為格林尼治時間. 越來越多的系統管理員建議將所有服務器都設置為 格林尼治時間(GMT). 我個人非常喜歡這點,因為現在幾乎所有的業務都是全球化的. 設置為你本地的時區似乎是有點武斷的.

2.character-set-server=utf8mb4 and collation-server=utf8mb4_general_ci? 如之前的 文章所講述的 ,utf8 編碼對新應用來說是更好的默認選項. 您還可以設置 skip-character-set-client-handshake 以忽略應用程序想要設置的其他字符集(character-set).

3.sql-mode?—— MySQL默認對不規范的數據很寬容,并且會靜默地截斷數據. 在我 之前的一篇文章中, 我提到新應用程序最好設置為: ?

復制代碼代碼如下: STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,
?NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,
?NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,
?NO_ZERO_IN_DATE,ONLY_FULL_GROUP_BY.

4.skip-name-resolve?—— 禁用反向域名解析. DNS解析在某些系統上可能有點慢/不穩定,所以如果不需要基于主機名的授權,我建議避免這種解析.

?

5.max_connect_errors?—— Todd Farmer 寫道 :“[這個功能]提供了沒有實際意義的暴力訪問攻擊保護”. 事實上當設置skip-name-resolve 時, max_connect_errors 甚至不起作用(見上一段所述).

?防火墻是更合適的解決方案,通常我將3306端口屏蔽,不管是公網的還是內網的端口,只有特定的應用程序可以訪問和連接到MySQL.?
?我通常會設置 max_connect_errors=100000, 這樣我可以避免任何“雙重配置”,保證它不會礙事.

6.max-connections?——默認值是151. 我看到很多用戶將他設置得比較大,大多在 300 ~ 1000之間.
?通常不可避免地這個值會被設置得更大,但讓我有點緊張的是, 16核的機器在IO阻塞的情況下也只有大約 2x~10x 的連接執行能力.?
?你可能希望,許多打開的連接都是空閑并休眠的. 但如果他們都處于活躍狀態的話,可能會創建大量新的線程(thread-thrash).
?如果條件允許,可以為應用程序配置優化數據庫連接池(connection-pools)來解決這個問題,而不是打開并保持大量連接;?
?當然那些不使用連接池(non-pooled ), 迅速打開,執行任務后又盡可能快地關閉連接的應用也是可行的.?
?從5.5開始的另一種解決方案(在MySQL社區版和企業版之間有一些差異) 是使用 線程池插件.


總結(Conclusion)

假設MySQL服務器的配置為:
1.64GB物理內存
2.硬件RAID控制器(假設每秒IO可達 2000 IOPS)
3.需要主從復制(Replication)
4.新的應用(eg. 非遺留系統)
5.有防火墻保護
6.不需要基于域名(hostnames,主機名)的授權
7.全球化應用,并不想固定在某一時區.
8.想要程序可靠穩定(durable).

則配置可能如下所示:

復制代碼代碼如下:
# InnoDB settings
innodb_buffer_pool_size=50G
innodb_log_file_size=2G
innodb_flush_method=O_DIRECT
innodb_io_capacity=2000
innodb_io_capacity_max=6000
innodb_lru_scan_depth=2000

?

# Binary log/replication
log-bin
sync_binlog=1
sync_relay_log=1
relay-log-info-repository=TABLE
master-info-repository=TABLE
expire_logs_days=10
binlog_format=ROW
transaction-isolation=READ-COMMITTED
innodb_autoinc_lock_mode = 2

# Other
timezone=GMT
character-set-server=utf8
collation-server=utf8_general_ci
sql-mode="STRICT_TRANS_TABLES,
?ERROR_FOR_DIVISION_BY_ZERO,
?NO_AUTO_CREATE_USER,
?NO_AUTO_VALUE_ON_ZERO,
?NO_ENGINE_SUBSTITUTION,
?NO_ZERO_DATE,
?NO_ZERO_IN_DATE,
?ONLY_FULL_GROUP_BY"
skip-name_resolve
max-connect-errors=100000
max-connections=500

# Unique to this machine
server-id=123

轉載于:https://www.cnblogs.com/junle/p/4998924.html

總結

以上是生活随笔為你收集整理的mysql5.6优化建议的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲夜夜爱 | 一区二区三区四区欧美 | 欧美综合激情 | 99精品区 | 色综合五月婷婷 | 亚洲精品日韩丝袜精品 | 无遮挡aaaaa大片免费看 | 久久久久亚洲av无码专区首jn | 肌肉猛男裸体gay网站免费 | 亚洲成人精品视频 | 911色| 三年大全国语中文版免费播放 | 日韩在线观看你懂的 | 成人免费一级片 | 樱花影院最新免费观看攻略 | 欧洲精品一区二区 | 国产精品国产精品国产专区 | 天天干天天操天天拍 | 亚洲精品少妇 | 国产a精品 | 中文字幕免费高 | www.96av| 69精品在线| 色综合影视 | 特级西西444www高清大胆免费看 | 国产成人无码精品久在线观看 | 欧美性受视频 | 自拍偷拍999 | jjzz黄色片 | 熟妇人妻中文av无码 | 欧美极品第一页 | 男女瑟瑟网站 | 在线播放你懂的 | 麻豆资源| 国产人妻777人伦精品hd | 国产黄色在线看 | 精品在线免费观看 | 男人疯狂高潮呻吟视频 | 蕾丝视频污 | 涩天堂| 色窝av| 亚洲性事 | 波多野结衣一区二区三区在线 | 欧美一区亚洲二区 | 夜夜嗨一区二区三区 | 午夜激情国产 | 欧美成人久久久 | 成人免费三级 | 欧美日韩另类视频 | 日本午夜激情视频 | 国产午夜精品一区二区三区视频 | 精品一区二区三区视频在线观看 | 七仙女欲春2一级裸体片 | 一区二区三区精品国产 | 亚洲精品免费看 | 朋友人妻少妇精品系列 | 国产精品三级电影 | 日韩欧美aaa | 男人的天堂av网 | 欧洲精品在线观看 | 干干操操 | 姑娘第5集在线观看免费好剧 | 色网站在线免费观看 | 国产污视频在线观看 | 久久久久久久久久久网 | 女人av在线 | 亚洲青涩 | 亚洲女人网 | 伊人影院在线播放 | 国产欧美中文字幕 | 欧美激情动态图 | 免费观看黄色 | 国产精品你懂的 | 精品国产亚洲一区二区麻豆 | 亚洲国产一区二区三区四区 | 剧情av在线 | 在线观看亚洲视频 | 看免费黄色片 | 欧美特级a| 久91| 国产视频在线免费观看 | 日韩在线视频免费看 | 高清国产一区二区 | 深爱激情av | 一区二区三区日韩欧美 | 亚洲人体av | 亚洲一区二区三区四区在线 | 男女av在线 | 免费午夜网站 | 精品人妻伦九区久久aaa片 | 伦乱天堂 | 亚洲三级在线看 | 亚洲五月花| 成人无码视频 | 亚洲成人av免费观看 | 边吃奶边添下面好爽 | 黄色片播放器 | 亚洲男同视频 | 中文在线不卡 |