在新西兰做兼职的网站,网站开发运行环境论文,旅游公司电子商务网站建设策划书,唯美音乐图文网站建设一、选择Percona Server、MariaDB还是MYSQL1、Mysql三种存储引擎MySQL提供了两种存储引擎#xff1a;MyISAM和 InnoDB#xff0c;MySQL4和5使用默认的MyISAM存储引擎。从MYSQL5.5开始#xff0c;MySQL已将默认存储引擎从MyISAM更改为InnoDB。MyISAM没有提供事务支持#xf…一、选择Percona Server、MariaDB还是MYSQL1、Mysql三种存储引擎MySQL提供了两种存储引擎MyISAM和 InnoDBMySQL4和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、MariaDBMariaDB由MySQL的创始人开发MariaDB的目的是完全兼容MySQL包括API和命令行使之能轻松成为MySQL的代替品。MariaDB提供了MySQL提供的标准存储引擎即MyISAM和InnoDB10.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文件系统千万别用ext3ext4勉强可用但业务量很大的话则一定要用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-engineInnoDB强烈建议不要再使用MyISAM引擎。调整innodb_buffer_pool_size的大小如果是单实例且绝大多数是InnoDB引擎表的话可考虑设置为物理内存的50% -70%左右。设置innodb_file_per_table 1使用独立表空间。调整innodb_data_file_path ibdata1:1G:autoextend不要用默认的10M,在高并发场景下性能会有很大提升。设置innodb_log_file_size256M设置innodb_log_files_in_group2基本可以满足大多数应用场景。调整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写操作一般采用基于heartbeatDRBDMySQL搭建高可用集群的方案。通过heartbeat实现对mysql主进行状态监测而DRBD实现dbm157数据同步到dbm158。读操作普遍采用基于LVSKeepalived搭建高可用高扩展集群的方案。前端AS应用通过提高的读VIP连接LVSLVS有keepliaved做成高可用模式实现互备。 最后mysql主的从节点dbs159/160/161通过mysql主从复制功能同步mysql主的数据通过lvs功能提供给前端AS应用进行读操作并实现负载均衡。