mysql 优化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 比较全面的MySQL优化参考(上篇) 发表回复 本文整理了一些MySQL的通用优化方法,做个简单的总结分享,旨在帮助那些没有专职MySQL DBA的企业做好基本的优化工作,至于具体的SQL优化,大部分通过加适当的索引即可达到效果,更复杂的就需要具体分析了,可以参考本站的一些优化案例或者联系我,下方有我的联系方式。这是上篇。 1 、硬件层相关优化 1.1 、CPU相关 在服务器的BIOS设置中,可调整下面的几个配置,目的是发挥CPU最大性能,或者避免经典的NUMA问题: 1 、选择Performance Per Watt Optimized(DAPC)模式,发挥CPU最大性能,跑DB这种通常需要高运算量的服务就不要考虑节电了; 2 、关闭C1E和C States等选项,目的也是为了提升CPU效率; 3 、Memory Frequency(内存频率)选择Maximum Performance(最佳性能); 4 、内存设置菜单中,启用Node Interleaving,避免NUMA问题; 1.2 、磁盘I / O相关 下面几个是按照IOPS性能提升的幅度排序,对于磁盘I / O可优化的一些措施: 1 、使用SSD或者PCIe SSD设备,至少获得数百倍甚至万倍的IOPS提升; 2 、购置阵列卡同时配备CACHE及BBU模块,可明显提升IOPS(主要是指机械盘,SSD或PCIe SSD除外。同时需要定期检查CACHE及BBU模块的健康状况,确保意外时不至于丢失数据); 3 、有阵列卡时,设置阵列写策略为WB,甚至FORCE WB(若有双电保护,或对数据安全性要求不是特别高的话),严禁使用WT策略。并且闭阵列预读策略,基本上是鸡肋,用处不大; 4 、尽可能选用RAID - 10 ,而非RAID - 5 ; 5 、使用机械盘的话,尽可能选择高转速的,例如选用 15KRPM ,而不是 7.2KRPM 的盘,不差几个钱的; 2 、系统层相关优化 2.1 、文件系统层优化 在文件系统层,下面几个措施可明显提升IOPS性能: 1 、使用deadline / noop这两种I / O调度器,千万别用cfq(它不适合跑DB类服务); 2 、使用xfs文件系统,千万别用ext3;ext4勉强可用,但业务量很大的话,则一定要用xfs; 3 、文件系统mount参数中增加:noatime, nodiratime, nobarrier几个选项(nobarrier是xfs文件系统特有的); 2.2 、其他内核参数优化 针对关键内核参数设定合适的值,目的是为了减少swap的倾向,并且让内存和磁盘I / O不会出现大幅波动,导致瞬间波峰负载: 1 、将vm.swappiness设置为 5 - 10 左右即可,甚至设置为 0 (RHEL 7 以上则慎重设置为 0 ,除非你允许OOM kill发生),以降低使用SWAP的机会; 2 、将vm.dirty_background_ratio设置为 5 - 10 ,将vm.dirty_ratio设置为它的两倍左右,以确保能持续将脏数据刷新到磁盘,避免瞬间I / O写,产生严重等待(和MySQL中的innodb_max_dirty_pages_pct类似); 3 、将net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse都设置为 1 ,减少TIME_WAIT,提高TCP效率; 4 、至于网传的read_ahead_kb、nr_requests这两个参数,我经过测试后,发现对读写混合为主的OLTP环境影响并 |
时来天地皆同力,运去英雄不自由
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!