mysql服务器参数有很多,如果想查看某一项参数的具体含义,可以使用mysqld --verbose --help | grep
innodb存储引擎中的参数都是以innodb开头的:
innodb_buffer_pool_size:
这个参数定义了innodb存储引擎的表数据和索引数据的最大内存缓冲区大小,和myisam存储引擎不同,myisam的key_buffer_size只缓存索引键,而innodb_buffer_pool_size却是同时为数据块和索引块做缓存,这个特性和oracle是一样的,这个值越高,访问表中数据所需要的磁盘IO越少,在一个专用的数据库服务器上,可以设置这个参数达到机器 物里内存大小的80%。但是建议不要将他设置的太大,因为对物里内存的竞争可能在操作系统上导致内存调度。
innodb_flush_log_at_trx_commit:
innodb_additional_mem_pool_size:
这个参数是innodb存储引擎用来存储数据库结构和其他内部数据结构的内存池大小,其默认值为1M,应用程序表越多,则需要在这里分配越多的内存。如果innodb用光了这个池内的内存,则innodb开始从操作系统分配内存,并且往mysql错误日志里写警告信息。没有必要给这个缓冲分配非常大的空间,在应用相对稳定的情况下,这个缓冲池大小也相对稳定。
innodb_lock_wait_timeout:
mysql可以自动的监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动的监测,所以该参数主要被用于在出现类似情况的时候等待指定的时间后回滚。系统默认是50秒。
innodb_support_xa:
该参数设置是否支持分布式事务,默认值是on或1,表示支持分布式事务。如果确认应用中不需要使用分布式事务,可以关闭这个参数,减少磁盘刷新次数并获得更好的innodb性能。
innodb_log_buffer_size:
该参数是日志缓存大小,默认的设置在中等强度写入负载以及较短事务的情况下,一般可以满足服务器性能的要求。如果存在更新操作峰值或者负载较大,就应该考虑加大它的值。如果设置太高会浪费内存,因为它每秒都会刷新一次,因此无需设置超过一秒所需要的内存空间。通常设置为8~16MB就足够了。越小的系统它的数值就越小。默认为8M。
innodb_log_file_size:
该参数含义是一个日志组中每个日志文件的大小。此参数在高写入负载尤其是大数据集的情况下很重要,这个值越大则性能越高,但是副作用是当系统灾难时恢复时间会加大。5.5默认是5Mb,5.6默认是50Mb。