如果不配的后果:
默认为:3配置实例:
innodb_undo_tablespaces = 338)innodb_flush_neighbors
推荐设置:
推荐为:0作用:
这个参数很要紧,目前在ssd盛行的情况下我们都把它设为0(不开启),如果你设置成了1即开启(默认状态)InnoDB就会刷新一个extent中的所有页面,因为SSD在随机IO上没有额外负载,所以不需要启用该特性,开启了反而多此一句 。下面给出一段mysql5.7源码编译前程序员看的readme里的一句话:
This new default changes MySQL to cater for SSDs and fast storage devices by default. We expect that for the majority of users, this will result in a small performance gain. Users who are using slower hard drives may see a performance loss, and are encouraged to revert to the previous defaults by setting innodb_flush_neighbors=1.如果不配的后果:
它的默认是1,不是0.这个参数对机性硬盘来说很有效,可以减少随机io,增加性能 。如果是ssd类磁盘,建议设置为0,可以更快的刷新脏页 。如果你把它设为1同时又是ssd那就显得没必要了 。这边普及一下小知识,如果你装过8.0,你可以去看一下,8.0已经把这个默认值设为0了 。配置实例:
innodb_flush_neighbors = 039)innodb_log_file_size
推荐设置:
第1步:show engine innodb status;作用:
得到:
Log sequence number 2944118284
Log flushed up to 2944118283
Last checkpoint at 2724318261
第2步:设innodb_log_file_size$=log Log sequence number-last checkpoint at=select (2944118284-2724318261)/1024/1024;=209M
第3步:设真正的innodb_log_file_size<=(innodb_log_files_in_group*innodb_log_file_size)*0.75,innodb_log_files_in_group为2(默认),得:
第4步:select 209/(2*0.75);=139.33即:139m,此时可把这个值设为140M
这个值的默认为5M,是远远不够的,在安装完mysql时需要尽快的修改这个值 。
如果对 Innodb 数据表有大量的写入操作,那么选择合适的 innodb_log_file_size 值对提升MySQL性能很重要 。然而设置太大了,就会增加恢复的时间,因此在MySQL崩溃或者突然断电等情况会令MySQL服务器花很长时间来恢复 。
而这个值是没有一个绝对的概念的,MySQL的InnoDB 存储引擎使用一个指定大小的Redo log空间(一个环形的数据结构) 。Redo log的空间通过innodb_log_file_size和innodb_log_files_in_group(默认2)参数来调节 。将这俩参数相乘即可得到总的可用Redo log 空间 。尽管技术上并不关心你是通过innodb_log_file_size还是innodb_log_files_in_group来调整Redo log空间,不过多数情况下还是通过innodb_log_file_size 来调节 。为InnoDB引擎设置合适的Redo log空间对于写敏感的工作负载来说是非常重要的 。然而,这项工作是要做出权衡的 。你配置的Redo空间越大,InnoDB就能更好的优化写操作;然而,增大Redo空间也意味着更长的恢复时间当出现崩溃或掉电等意外时 。我们是通过“测试”得到,怎么测试下面给出方法论:一般情况下我们可以按照每1GB的Redo log的恢复时间大约在5分钟左右来估算 。如果恢复时间对于你的使用环境来说很重要,我建议你做一些模拟测试,在正常工作负载下(预热完毕后)模拟系统崩溃,来评估更准确的恢复时间 。你可以安装 Percona Monitoring and Management,在该pmm的percona monitoring and management图表中,主要看:
1)Uncheckpointed Bytes,如果它已经非常接近 Max Checkpoint Age,那么你几乎可以确定当前的 innodb_log_file_size 值因为太小已经某种程度上限制了系统性能 。增加该值可以较为显著的提升系统性能 。
2)Uncheckpointed Bytes 远小于 Max Checkpoint Age,这种情况下再增加 innodb_log_file_size 就不会有明显性能提升 。
在调整完log_file_size后我们再到pmm中去看:Redo Log空间指标,比如说我们看到了1小时内有60g数据被写入日志文件,差不多就是每10分钟会有10g数据在进行“写日志“,我们需要牢牢记得,这个”写日日土已“的时间拖得越久、出现的频次越少就越有助于mysql的innodb的性能 。因此这个值没有绝对推荐 。如果你没有pmm,那么我们来人肉算,在上面我已经给出了人肉算的详细例子!
如果不配的后果:
默认是5M,这是肯定不够的 。配置实例:
innodb_log_file_size = 140M40)innodb_log_buffer_size
推荐设置:
16777216
推荐阅读
- 淘宝店铺好评率如何快速提升 淘宝好评率低于多少有影响
- 高性能网络通信框架 HP-Socket v5.7.2
- 多云架构的3个常见性能挑战和解决方案
- 2分钟学会,提升你气质的20个小习惯
- 淘宝店的物流服务怎么提升 如何提高物流时效
- 淘宝新店铺怎么刷销量 淘宝店铺怎么提升流量和销量
- 在桌面上创建一个关机快捷方式,只需一条命令,关机速度大幅提升
- 月经期间女性能做瑜伽吗?
- 淘宝每天转化率百分之多少最好 淘宝怎么提升转化率
- 淘宝客单价高的产品怎么刷 淘宝货单价怎么提升
