当前位置:首页 > 日记 > 正文

MySQL优化必须调整的10种配置

MySQL优化必须调整的10种配置
当我们被雇来监视性能,人们希望我们可以看看mysql的配置及完善的建议。很多人在事件发生后很惊讶,因为我们认为他们只改变一些设置,即使有成百上千的配置项。这篇文章的目的是给你的配置项的一个非常重要的表。

几年前,我们在博客上给出了这个建议,但是MySQL世界的变化太快了!
动笔前写…
即使是有经验的人也会犯错误,造成很多麻烦,所以在你盲目地使用这些建议之前,记住以下几点:

一次只换一套!这是检验变化是否有益的唯一方法。

大多数配置可以在运行时用全局设置来改变。这是一种非常方便的方法,可以让您在一个问题之后快速撤消更改。

即使MySQL重新启动了,改变也不行吗请确保您使用正确的配置文件。请确保你把配置在右区(本文提到的所有配置都是{他})

服务器不来修改配置后,请确保您使用正确的单位。例如,对innodb_buffer_pool_size单位是MB和max_connection不是单位。

配置文件中没有重复配置项。如果要跟踪更改,请使用版本控制。

不要使用天真的计算,例如我的服务器内存是现在的2倍,所以我必须把所有的值改为前一次的2倍。

基本配置
您需要经常查看以下3个配置项,否则可能很快就会出现问题。

innodb_buffer_pool_size:这是你应该在你完成安装InnoDB设置选项。缓冲池数据和索引缓存的地方:更大的价值,更好的。这保证了你大部分的读取操作而不是使用硬盘存储,典型值是5-6gb(8GB内存),20-25gb(32GB内存),100-120gb(128GB内存)。

innodb_log_file_size:这是重做日志的大小。重做日志是用来确保写操作快速、可靠和恢复的时候崩溃。直到MySQL 5.1,很难调整,因为你想让它更能提高性能的一个方面,另一方面,你想让它更小、更快的恢复后坠毁。幸运的是,在MySQL 5.5,崩溃恢复的性能大大提高,这样你可以有高的写入性能和故障恢复性能的同时。直到MySQL 5.5的重做日志是有限的4GB的总大小(默认有2日志文件),这是MySQL的5.6提高。

建立innodb_log_file_size 512M的放在第一位(所以1gb重做日志)会使你的写作空间充足。如果你知道你的应用程序需要写入数据频繁,当你使用MySQL 5.6,你可以开始为4G开始。

max_connections:如果你经常看到连接太多错误,这是因为max_connections值太低,这是很常见的,应用程序不关闭数据库连接正确,你需要一个比151个连接的默认数量较大的值,max_connection价值的一个主要缺点是建立(例如,1000或更高)。当服务器运行1000个或多个活动事务时,它将变得无响应。使用应用程序中的连接池或使用MySQL中的进程池可以解决这个问题。
InnoDB配置
从MySQL 5.5版本,InnoDB是默认的存储引擎,它是更多的使用比任何其他存储引擎。这就是为什么它需要仔细配置。

innodb_file_per_table:这个设置告诉InnoDB是否存储所有表的数据和共享表空间索引(innodb_file_per_table =关闭)或单独的每个表的数据到一个单一的。IBD文件(innodb_file_per_table =对)。每个表是一个文件,允许你恢复磁盘空间在下降,截形,或重建表。这也是一些高级功能,如数据压缩。但它不会带来任何的性能提升。你不想在桌上把文件的主要场景是有非常多的表(如万+的)。

在MySQL 5.6中,这个属性的默认值是打开的,所以在大多数情况下不需要做任何事情。

innodb_flush_log_at_trx_commit:默认值为1,表明我们完全支持ACID特性。这个值是最合适的,你的主要关注的是数据的安全性,如在主节点。但磁盘(读写)慢行系统,它将带来巨大的成本,因为每一次我们改变刷新到重做日志,我们需要更多的fsyncs。设置它的值为2将导致更少的可靠性(可靠),因为提交的事务仅仅是刷新到重做日志每秒,但它是可以接受的,某些情况下,例如,对于主节点的备份节点,这个值是可以接受的。如果该值为0,它会更快,但某些数据可能会丢失当系统崩溃:只备份节点。

对innodb_flush_method配置:确定数据和日志写入硬盘的方式。一般来说,如果你有硬件RAID控制器和独立的缓存采用回写机制和电池断电保护,它应该配置o_direct;否则,在大多数情况下,它应该被设置为fdatasync(默认值)Sysbench是一个很好的工具来帮助你决定这个选项。

的innodb_log_buffer_size:配置确定缓存分配尚未执行的交易。其默认值(1MB)通常是足够的,但如果你的交易包含二进制大型对象或大文本字段,这个缓存将很快被填平,触发额外的我/ O操作。看看innodb_log_waits状态变量,如果它不是0,加innodb_log_buffer_size。
其他设置
query_cache_size:查询缓存(查询缓存)是一个众所周知的瓶颈,即使没有太多的并发。最好的办法是禁用它,从一开始,设置query_cache_size = 0(现在MySQL 5.6的默认值),或用其他方法加速查询的优化指标,添加副本分散负荷,或使额外的缓存,如memcache或redis。如果您已经启用的应用程序并没有发现任何问题的查询缓存,查询缓存可能会对你有用。这是如果你想阻止它,那么你就要小心了。

log_bin:如果你想让数据库服务器作为主节点的备份节点,需要打开二进制日志。如果你这样做,别忘了把server_id作为一种独特的价值。即使只有一个服务器,如果你想做基于时间点的数据恢复,这也是有用的:从你最近的备份恢复(全量备份),将修改二进制日志(增量备份),二进制日志将永久保存,一旦它被创建。所以如果你不想让磁盘空间用完了,您可以使用二进制日志清理净化旧的文件,或设置expire_logs_days指定它将自动删除多少天。

日志二进制日志不是没有成本的,因此如果您不需要在非主节点的复制节点上,建议关闭此选项。

skip_name_resolve:当客户端连接到数据库服务器,该服务器执行主机名解析,并且连接会慢时,DNS是缓慢的。因此,建议skip_name_resolve选项被关闭时,服务器没有DNS查找开始。唯一的限制是,IP地址只能用于随后的grant语句,因此必须添加此设置到一个现有的系统格外小心。

总结

当然,也有可能发挥作用的其他设置,根据你的负载或硬件:在缓慢的内存和高速磁盘,高并发写密集型负载,你将需要特殊的调整。但是,这里的目标是使您能够快速获得强大的MySQL的配置,而不是花太多的时间调整一些不相干的MySQL设置或读取文件找出设置对你很重要。

相关文章

Win8或Win8.1的IE10和IE11不能显示

Win8或Win8.1的IE10和IE11不能显示

解决方案,显示,闪光,电脑软件,点评:最近,很多朋友出现IE11 Win8系统不显示Flash和IE11不能播放Flash,他们大多数来自IE浏览器的安全权限和系统问题。下面有几个好的解决方案,你可以参考一下。 IE11 Flash的问题是一个很大的麻烦win8.1.we Win8…

苹果官网差价退还如何申请?2019appl

苹果官网差价退还如何申请?2019appl

苹果官网差价退还如何申请?2019apple苹果退差价流程,差价,产品,调整,购买,渠道,增值税,官网,苹果官网,四月新规其中一下就是调整了增值税,所以苹果多款产品价格都有不同程度的降价。而在14日以内购买的用户,是可以申请差价退还的。而苹果差价退还如何…

MySQL字符集的基本类型及统一字符

MySQL字符集的基本类型及统一字符

字符集,基本类型,电脑软件,MySQL,下面的文章主要介绍了mysql字符集的基本类型,统一字符集的实际操作方法,如相关内容的介绍,相关内容下面是mysql字符集的说明,希望对以后的学习或工作有很大的帮助。 1。字符集类型 在MySQL服务器中使用字符集…

计算机是怎样开始慢了如何提高win7

计算机是怎样开始慢了如何提高win7

是怎样,慢了,速度,电脑软件,点评:在电脑启动的过程中时间比较慢,开始抱怨我怎么会这么慢,因为需要读取数据,所以让计算机做更多的工作,所以他们需要更多的时间来引导,可以删除一些不必要的启动项,这将大大提高计算机的开机速度。 每天要做的第一件…

otwo.exe的过程是怎样的

otwo.exe的过程是怎样的

的是,过程,是怎样,电脑软件,otwo,评论:对otwo.exe工艺简介 进程文件:华拓或otwo.exe 进程名称:华拓 工艺种类: 英文描述: 对不起,这个过程没有英文描述。 中文参考: 管弦乐队歌曲的外挂程序实现了相互更新的功能。 制作人:9you 属于:9you 系统过程…

区分案例和案例的MySQL查询

区分案例和案例的MySQL查询

案例,查询,电脑软件,MySQL,1。一种方法是设置表或行的排序规则,使其为二进制或区分大小写。在MySQL中,列排序的命名方法如下所示: * _bin:代表二进制区分排序规则,也就是说它是区分大小写的 * _cs:敏感的排序,区分大小写 * _ci:大小排序,不区分大小…

几种语言中oracle时间转换的实现

几种语言中oracle时间转换的实现

时间转换,语言,几种,电脑软件,oracle,C shell perl php下日期和时间转换:从` 00:00:00 1970-01-01 UTC秒和人类可读的日期时间和秒数的标量 标量时间26字节的字符串,因为` 00:00:00 1970-01-01 UTC的秒 (自1970年1月1日清晨零时起的秒数) 起的…

常见错误收集

常见错误收集

错误收集,常见,电脑软件,# 1067无效的默认值for'xxx 当表中的字段被修改时发生此错误。 必须删除字段并再次添加 UTF-8导入mysql没有中文显示 今天,本地MySQL数据被导出到Web服务,结果发现所有的汉字都不见了: 程序代码 导出数据库5.0.45.c…

在MySQL数据库varchar规则限制

在MySQL数据库varchar规则限制

数据库,规则,电脑软件,MySQL,varchar,在MySQL数据库中varchar的最大长度是多少事实上,这不是一个定数,和varchar的长度是有限制的。在本文中,我们将介绍MySQL数据库varchar的限制规则,并通过一个实例说明限制规则。下面让我们一起来学习这个部…

Win8两种方法来解决旧的视频卡顿现

Win8两种方法来解决旧的视频卡顿现

视频卡,两种,方法来,现象,电脑软件,点评:在看视频时的Win8,经常出现卡顿现象,看视频卡顿的原因只有两个,一个是视频网站的问题是Flash和浏览器兼容,另一个原因是操作IE的方法是不合理的,这里是一个很好的解决方案,我们可以参考 Win8系统,小型家用…

该srv32.exe-角色srv32过程是什么

该srv32.exe-角色srv32过程是什么

角色,过程,电脑软件,exe,点评:srv32.exe是opaserv {J}.病毒相关程序。该木马允许攻击者访问你的计算机,窃取密码和个人数据 进程文件:srv32或srv32.exe 进程名称:opaserv J病毒。 过程类别:安全风险的过程 英文描述: Srv32.exe is a process wh…

手机用久了为什么会发烫?手机发烫的

手机用久了为什么会发烫?手机发烫的

手机用久了为什么会发烫?手机发烫的真正原因几解决方法,手机发烫,手机用,运行,解决方法,程序,游戏,配置,处理器,机不离手,是现在大多数人的生活状态,不过不知道你们有没有发现,有时候手机用久了,机身就会显得非常烫手,好像下一秒就要爆炸了一样。这是为什…