MySQL常用架构选取及实操步骤

MySQL,你这样撩企业好吗?隔着屏幕都能闻到你蠢蠢欲动的荷尔蒙。众所周知,MySQL是最流行的关系型数据库管理系统,尤其在WEB以及大数据应用方面。由于它体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,所以一般中小型网站的开发都选择MySQL作为网站数据库。今天,大圣众包威客平台(www.dashengzb.cn)就MySQL常用架构的选取以及对其调优的实操步骤进行详细讲解。

一、3大常用MySQL企业架构该如何选择

很多企业在选择MySQL常用架构时都会疑惑,应该选MySQL、PerconaServer还是MariaDB呢?事实上,综合多年的使用经验,以及对这3个架构的性能对比,建议企业应首选Percona分支,而其次是选用MariaDB;但如果一点风险都不想冒,那可以选择回MySQL的官方版本。以下来看看这3个常用架构的一些特点。

1、MySQL的三种存储引擎

MySQL提供了两种存储引擎:MyISAM和InnoDB,MySQL4和5使用默认的MyISAM存储引擎。不过,因为MyISAM没有提供事务支持,而InnoDB提供了事务支持,所以,从MySQL5.5开始,MySQL已将默认存储引擎从MyISAM更改为InnoDB。

值得一提的是,XtraDB是InnoDB存储引擎的增强版本,被设计来更好地使用更新计算机硬件系统的性能,同时它还包含有一些在高性能环境下的新特性。

2、PerconaServer分支

PerconaServer由领先的MySQL咨询公司Percona发布。作为一款独立的数据库产品,PerconaServer不仅可以与MySQL完全兼容,还可以在不更改代码的情况下将存储引擎更换成XtraDB。它除了提供了高性能的XtraDB引擎,还提供了PXC高可用解决方案,并且附带了percona-toolkit等DBA管理工具箱。要说当前最接近官方MySQLEnterprise发行版的版本,非PerconaServer莫属。

3、MariaDB

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

另外,MariaDB提供了MySQL提供的标准存储引擎,即MyISAM和InnoDB,自10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。

二、常用的MySQL调优策略的具体操作

想要对常用的MySQL进行调优,具体应该怎么操作呢?希望以下的步骤能够帮上你一忙。

1、硬件层相关优化

修改服务器BIOS设置——选择PerformancePerWattOptimized(DAPC)模式,这样能够发挥CPU的最大性能——MemoryFrequency(内存频率)选择MaximumPerformance(最佳性能)——内存设置菜单中,启用NodeInterleaving,避免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左右即可,另外建议关闭querycache——mp_table_size和max_heap_table_size设置不要过大,另外sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size等设置也不要过大。

MySQL是一种关联数据库管理系统,这种关联数据库会将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就能大大提高了它的速度和灵活性。因此,它深受广大用户的喜爱,尤其是大数据企业的喜爱。

原文地址:http://www.dashengzb.cn/articles/a-159.html

(更多大数据与商业智能领域干货、兼职机会及行业资源分享等请关注大圣众包平台,或添加大圣花花个人微信号(dashenghuaer),拉你入bigdata&BI交流群330648564。)

你可能感兴趣的:(MySQL常用架构选取及实操步骤)