set global innodb_buffer_pool_size = 8589934592;
默认大小为128M。最大值取决于CPU的架构
调整为8G。
大的缓冲池可以减小多次磁盘I/O访问相同的表数据。
在专用数据库服务器上,可以将缓冲池大小设置为服务器物理内存的80%。
set global innodb_buffer_pool_instances=1
默认值为8
当innodb_buffer_pool_size > 1G时候,innodb_buffer_pool_instances设置为1最合理。
set global innodb_flush_neighbors = 0 ;
默认值为 1
InnoDB存储引擎提供了Flush Neighbor Page(刷新邻接页)的特性。其工作原理为:当刷新一个脏页时,InnoDB存储引擎会检测该页所在区(extent)的所有页,如果是脏页,那么一起进行刷新。
在SSD存储上应设置为0(禁用) ,因为使用顺序IO没有任何性能收益.
在使用RAID的某些硬件上也应该禁用此设置,因为逻辑上连续的块在物理磁盘上并不能保证也是连续的。
set global innodb_log_file_size = 1073741824;
默认值48M
小日志文件使写入速度更慢,崩溃恢复速度更快.
大日志文件使写入更快,崩溃恢复速度更慢
由于事务日志相当于一个写缓冲,而小日志文件会很快的被写满,这时候就需要频繁地刷新到硬盘,速度就慢了。如果产生大量的写操作,MySQL可能就不能足够快地刷新数据,那么写性能将会降低。大的日志文件,另一方面,在刷新操作发生之前给你足够的空间来使用。反过来允许InnoDB填充更多的页面。
对于崩溃恢复 – 大的重做日志意味着在服务器启动前更多的数据需要读取,更多的更改需要重做,这就是为什么崩溃恢复慢了。
参考设置:https://www.centos.bz/2016/11/innodb_log_file_size-mysql-redo-log-size/
网友评论