不同的需求,不同服务器硬件配置,要想MySql 服务处于最优状态是需要调试一些参数的,可调的参数非常多,在看完官方的mysql的文档,结合以前的配置情况在这里选择影响性能最大的参数作介绍:
先查一下参数情况:
SHOW VARIABLES LIKE 'innodb_buffer_pool%';
参数1:innodb_buffer_pool_size
参数说明: 针对mysql数据库的innodb缓存的大小,mysql默认创建的表都是innodb类型的,这个参数对提高性能来说是第一等重要,如果配置专用数据库服务器硬件有足够多的内存,官方建议配置服务器的80%内存,假如有100G内存,这个参数就可以配置80G,内存只要配置足够大可以直接让mysql变成内存数据库。
这个参数的设置值 = innodb_buffer_pool_chunk_size * innodb_buffer_pool_instances
innodb_buffer_pool_chunk_size 默认是128M
如果innodb_buffer_pool_size设置错了(innodb_buffer_pool_chunk_size * innodb_buffer_pool_instance!=innodb_buffer_pool_size),影响也不大,因为它会取你设置的接近innodb_buffer_pool_chunk_size倍数的值
mysql5.7 官方详细介绍:innodb_buffer_pool_size
参数2:innodb_buffer_pool_instances
参数说明:多少个缓存池,默认8个或者1个(内存参数innodb_buffer_pool_size < 1GB时1个),每个缓存池由一个线程单独管理,这里可以根据服务器的CPU的核数设置成N个,如16核的cpu则可以设置成16,最大允许64个。
mysql5.7 官方详细介绍:innodb_buffer_pool_instances
调优前后查看当前数据库实时状态:
SHOW ENGINE INNODB STATUS;