MySQL数据库性能调优一些见解

MySQL数据库性能调优一些见解,第1张

概述介绍《MySQL数据库性能调优一些见解》开发教程,希望对您有用。

《MysqL数据库性能调优一些见解》要点:
本文介绍了MysqL数据库性能调优一些见解,希望对您有用。如果有疑问,可以联系我们。

1、MysqL三种存储引擎

MysqL提供了两种存储引擎:MyISAM和 InnoDB,MysqL4和5使用默认的MyISAM存储引擎.从MysqL5.5开始,MysqL已将默认存储引擎从MyISAM变动为InnoDB.

MyISAM没有提供事务支持,而InnoDB提供了事务支持.

XTradB是InnoDB存储引擎的增强版本,被设计用来更好的使用更新计算机硬件系统的性能,同时还包括有一些在高性能环境下的新特性.

2、Percona Server分支

Percona Server由领先的MysqL咨询公司Percona宣布.

Percona Server是一款独立的数据库产品,其可以完全与MysqL兼容,可以在不变动代码的情况了下将存储引擎更换成XTradB.是最接近官方MysqL Enterprise发行版的版本.

Percona提供了高性能XTradB引擎,还提供PXC高可用办理方案,并且附带了percona-toolkit等DBA管理工具箱,

3、MariaDB

MariaDB由MysqL的创始人开发,MariaDB的目的是完全兼容MysqL,包含API和命令行,使之能轻松成为MysqL的代替品.

MariaDB提供了MysqL提供的尺度存储引擎,即MyISAM和InnoDB,10.0.9版起使用XTradB(名称代号为Aria)来代替MysqL的InnoDB.

4、如何选择

综合多年使用经验和性能对照,首选Percona分支,其次是MariaDB,如果你不想冒一点风险,那就选择MysqL官方版本.

二、常用的MysqL调优策略

1、硬件层相关优化

改动服务器BIOS设置

选择Performance Per Watt Optimized(DAPC)模式,发挥cpu最年夜性能.

Memory Frequency(内存频率)选择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.swappiness参数,降低swap使用率.RHEL7/centos7以上则慎重设置为0,可能产生OOM

调整vm.dirty_background_ratio、vm.dirty_ratio内核参数,以确保能持续将脏数据刷新到磁盘,避免瞬间I/O写.发生等待.

调整net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse都设置为1,减少TIME_WAIT,提高TCP效率.

5、MysqL参数优化建议

建议设置default-storage-engine=InnoDB,强烈建议不要再使用MyISAM引擎.

调整innodb_buffer_pool_size的年夜小,如果是单实例且绝年夜多数是InnoDB引擎表的话,可考虑设置为物理内存的50% -70%左右.

设置innodb_file_per_table = 1,使用自力表空间.

调整innodb_data_file_path = ibdata1:1G:autoextend,不要用默认的10M,在高并发场景下,性能会有很年夜提升.

设置innodb_log_file_size=256M,设置innodb_log_files_in_group=2,基本可以满足年夜多数应用场景.

调整max_connection(最大连接数)、max_connection_error(最大差错数)设置,根据业务量大小进行设置.

另外,open_files_limit、innodb_open_files、table_open_cache、table_deFinition_cache可以设置年夜约为max_connection的10倍左右年夜小.

key_buffer_size建议调小,32M左右即可,另外建议封闭query cache.

mp_table_size和max_heap_table_size设置不要过年夜,另外sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size等设置也不要过年夜.

三、 MysqL常见的应用架构分享

1、主从复制办理方案

这是MysqL自身提供的一种高可用解决方案,数据同步办法采用的是MysqL replication技术.MysqL replication就是从服务器到主服务器拉取二进制日志文件,然后再将日志文件解析成相应的sql在从服务器上重新执行一遍主服务器的 *** 作,通过这种方式保证数据的一致性.

为了达到更高的可用性,在实际的应用环境中,一般都是采纳MysqL replication技术配合高可用集群软件keepalived来实现自动failover,这种方式可以实现95.000%的SLA.

2、MMM/MHA高可用办理方案

MMM提供了MysqL主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件.在MMM高可用计划中,典型的应用是双主多从架构,通过MysqL replication技术可以实现两个服务器互为主从,且在任何时候只有一个节点可以被写入,避免了多点写入的数据冲突.同时,当可写的主节点故障时,MMM套件可以立刻监控到,然后将服务自动切换到另一个主节点,继续提供服务,从而实现MysqL的高可用.

3、Heartbeat/SAN高可用办理方案

在这个方案中,处理failover的方式是高可用集群软件Heartbeat,它监控和管理各个节点间连接的网络,并监控集群服务,当节点出现故障或者服务弗成用时,自动在其他节点启动集群服务.在数据共享方面,通过SAN(Storage Area Network)存储来共享数据,这种方案可以实现99.990%的SLA.

4、Heartbeat/DRBD高可用办理方案

此方案处理failover的方式上依旧采用Heartbeat,不同的是,在数据共享方面,采用了基于块级其余数据同步软件DRBD来实现.

DRBD是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制办理方案.和SAN网络不同,它并不共享存储,而是通过服务器之间的网络复制数据.

四、MysqL经典应用架构

此中:

Dbm157是MysqL主,dbm158是MysqL主的备机,dbs159/160/161是MysqL从.

MysqL写 *** 作一般采纳基于heartbeat+DRBD+MysqL搭建高可用集群的方案.通过heartbeat实现对MysqL主进行状态监测,而DRBD实现dbm157数据同步到dbm158.

读 *** 作普遍采纳基于LVS+Keepalived搭建高可用高扩展集群的方案.前端AS应用通过提高的读VIP连接LVS,LVS有keepliaved做成高可用模式,实现互备.

最后,MysqL主的从节点dbs159/160/161通过MysqL主从复制功效同步MysqL主的数据,通过lvs功效提供给前端AS应用进行读 *** 作,并实现负载均衡.

《MysqL数据库性能调优一些见解》是否对您有启发,欢迎查看更多与《MysqL数据库性能调优一些见解》相关教程,学精学透。内存溢出PHP学院为您提供精彩教程。

总结

以上是内存溢出为你收集整理的MySQL数据库性能调优一些见解全部内容,希望文章能够帮你解决MySQL数据库性能调优一些见解所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/1157280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存