常用MySQ调优策略及相关分享:学习随记
最高¥2000云產品通用代金券,訪問鏈接注冊、實名認證后可領取
https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=dansrwg4
MySQL作為開源關系型數據庫的一種,使用范圍比較廣,筆者也隨著版本的不斷更新接觸了從MySQL5.0到MySQL5.7的諸多版本,源代碼研究不多,主要是應用層次,而每家公司或每個項目針對不同客戶不同應用場景的實際軟硬件規格的不同,造成我們需要在官方版本默認參數的情況下,針對各自的特定情況進行調優,針對實踐或學習過程中的調優策略進行整理和分享:
從以下方面簡單說明:
一、MySQL版本及存儲引擎
1、三種存儲引擎
MySQL提供了兩種存儲引擎,MyISAM和InnoDB,MySQL4和MySQL5使用默認的MyISAM存儲引擎,從MySQL5.5開始,MySQL將存儲引擎從MyISAM更改為了InnoDB,MyISAM沒有提供事務支持,而InnoDB提供了事務支持。
XtraDB是InnoDB存儲引擎的增強版本,被設計用來更改的使用更新計算機硬件系統的性能,同時還包含有一些在高性能環境下的新特性。
2、Percona Server分支
可能有些人是首次聽說,但數據庫經驗豐富的對這個版本應該都不陌生。Percona Server是由領先的MySQL咨詢公司Percona 發布。是一款獨立的數據庫產品,其可以完全與MySQL兼容,可以在不更改代碼的情況下降存儲引擎更換成XtraDB,是最接近官方MySQL發行版的版本
Percona Server提供了高性能XtraDB引擎,還提供PXC高可用解決方案,并且附帶了percona toolkit等DBA管理工具箱。
3、MariaDB分支
MariaDB由MySQL的創始人開發,MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。
MariaDB提供了MySQL提供的標準存儲引擎,即MyISAM和InnoDB,10.0.9版本起使用XtraDB來代替MySQL的InnoDB
4、如何選擇:
Percona Server和MariaDB兩個都是開源的版本,而MySQL官方版本當前是有Oracle負責維護和升級,在此之前是由Sun公司購買過來的,目前來看更新和迭代以及新特性的研發速度遠低于其他版本,且后續存在從開源轉為閉源的可能,這也是為什么國內的很多云公司或互聯網公司即使用了官方版本,也會做自研改造或重構的其中原因之一。
另外根據市場反饋和一些資深DBA的使用經驗,以及各個版本之間的性能比對,建議首選Percona Server分支,其次是MariaDB,如果不想冒任何風險,那就選擇MySQL的官方版本。后續即使有一天收費或閉源了,相信也可以平滑遷移至其他版本。
二、MySQL的外部調優
1、硬件層相關優化
修改服務器BIOS設置
選擇Performance Per WattOptimalzed(DAPC)模式,發揮CPU最大性能
內存頻率,選擇Maximum Performance(最佳性能)
內存設置菜單中,啟用Node Interleaving ,避免NUMA問題
2、磁盤I/O相關
使用SSD硬盤
如果是磁盤陣列存儲,建議陣列卡同時配備CACHE及BBU模塊,可明顯提升IOPS
RAID級別盡量選擇RAID10,而不是RAID5
3、文件系統層優化
使用deadline/noop,這兩種I/O調度器,千萬別用CFQ
使用XFS文件系統,千萬別用EXT3,EXT4勉強可用,但業務量很大的話,則一定要用XFS
文件系統mount參數中增加:noatime、nodiratime、nobarrier幾個選項(nobarrier是xfs文件系統特有的)
4、內存參數優化
修改vm.swappines參數,降低swap使用率。RHEL7/Centos7以上則慎重設置為0,可能發生OOM
調整vm.dirty_backgroud_ratio、vm.dirty_ratio內核參數,以確保能持續將臟數據刷新到磁盤,避免瞬間I/O寫,產生等待。
調整net.ipv4.tcp_tw_recycle、net.ipv4.tdp_tw_reuse都設置為1,減少TIME_WAIT,提高TCP效率。
三、MySQL參數優化建議
網上搜索下會發現很多關于MySQL各方面應用下的參數優化,下面簡單羅列幾個:
1、Mysql性能優化、Mysql參數優化、Mysql配置優化
https://www.2cto.com/database/201711/695306.html
2、mysql參數優化(騰訊云社區)
https://cloud.tencent.com/developer/information/mysql參數優化
3、MySQL性能優化之參數配置
https://www.cnblogs.com/angryprogrammer/p/6667741.html
4、MySQL核心參數優化
https://www.cnblogs.com/jenvid/p/8994831.html
5、MySQL 高并發配置優化
https://blog.csdn.net/cuker919/article/details/80610314
6、MYSQL參數優化
https://blog.51cto.com/13545261/2146986
7、mysql參數優化(阿里云幫助文檔)
https://help.aliyun.com/wordpower/424749-1.html
以上為尋找到的網上鏈接,另外關于常用架構主從復制下的調優可以觀看下方的視頻鏈接,建議先領代金券再訪問視頻,會有很多免費學習資源
最高¥2000云產品通用代金券,訪問鏈接注冊、實名認證后可領取
https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=dansrwg4
相關學習視頻訪問鏈接:https://edu.aliyun.com/lesson_48_697?spm=5176.8764728.0.0.213a4fa0xUYl2m#_697
總結
以上是生活随笔為你收集整理的常用MySQ调优策略及相关分享:学习随记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内存调试技巧
- 下一篇: 数据结构拾遗(1) --红黑树的设计与实