MySQL高效的前提
好硬件是数据库高效的前提,没有好硬件其他优化都是白费
高性能的CPU
主频高SQL处理的更快
3级cache大CPU计算速率更快
多线程,同时并发处理SQL
关闭NUMA并设置为最大性能模式,充分利用硬件性能
MySQL 5.6.27后,增加innodb_numa_interleave选项(缓冲池)
更好的内存
主频高,内存读写速率更高,更高吞吐,更低时延
内存大,更多数据在内存中,减少直接磁盘读写,提高TPS
用更好的磁盘
通常来说,磁盘I/O是最大的瓶颈
如果是机械盘,一定要配阵列卡,以及阵列卡的CACHE & BBU
并且使用(FORCE)WB策略(RAID卡写策略)
最好是选用SSD或者PCIe SSD,iops可以提升成千上万倍
用更好的网卡/网络
文件传输速率高,异地文件备份更快
主从数据复制数据传输时延更小
适合大数据量的分布式存储环境
老版本内核中,网络请求太高时会引发中断瓶颈,建议升级内核
多个网卡可以进行绑定,提高传输速率并能提高可用性
好的系统设计能有效提升数据库性能
关闭无用服务
减少系统开销
避免潜在安全隐患
尽可能使用本地高速存储
坚决不使用nfs
除非是基于SSD的高速网络分布式存储
用于备份场景除外
让数据库跑在专用的服务器上,不混搭
性能上不相互影响
提高安全性
必须混撘时要做好权限管理以及安全隔离
文件系统选择
优先选用xfs 或 ext4(rhel 7及以上,xfs已是默认fs)
zfs/btrfs比较小众
坚决不用ext3
其他内核选项
vm.swappiness ≤ 10
降低使用swap的概率
内核2.6.32-303及以上版本,慎重设置为0,可能引发OOM