1、参数可以以show variables like
形式去查看
一、
- innodb_version innodb 版本号
- innodb_read_io_threads/innodb_write_io_threads 读写IO线程数
- innodb_purge_threads purge线程数
- innodb_buffer_pool_size 缓冲池内存大小
- innodb_buffer_pool_instances 缓冲池实例个数
- innodb_old_blocks_pct LRU的midpoint位置,old列表占据的百分比,midpoint之前为new列表活跃热点参数,之后为old列表
- innodb_old_blocks_time 页读取到midpoint位置后等待该时间才会加入到LRU列表的热端
- innodb_log_buffer_size 重做日志缓冲大小
- innodb_lru_scan_depth 保证LRU可用页数量,小于该值,刷新脏页
- innodb_max_dirty_pages_pct **缓冲值最大脏页占比,超过该值,刷新脏页 **
- innodb_purge_batch_size full purge操作时undo页回收的默认数量
- innodb_change_buffer_max_size change buffer最大使用内存数量,单位%
- show global status like “innodb_dblwr%” 两次写运行情况
二、
- log_error 错误日志路径
- long_query_time 慢查询时间阈值
- lslow_query_log 慢查询开关,默认关闭
- slow_query_log_file 慢查询文件路径(set global log_output=“TABLE”【FILE】然后select * from mysql.slow_log\G;可查看慢查询记录)
- 配置文件 log-bin [=name],启用二进制文件
- max_binlog_size 单个二进制文件空间最大值
- binlog_cache_size 二进制缓冲大小,当一个线程开始事务,自动分配该大小的缓冲,只在事务提交的时候一次性写入文件
- binlog_format 二进制日志格式,STATEMENT、ROW、MIXED
- innodb_data_file_path 默认表空间路径,大小属性
- innodb_file_per_table 独立表空间开关参数。开启后(frm表结构文件,ibd表数据文件都在独立表空间)
- innodb_log_group_home_dir 重做日志路径
- innodb_log_file_size 每个重做日志大小
- innodb_log_files_in_group 每组中文件数量
2、show engine innodb status
参数介绍
- buffer pool hit rate 缓冲池的命中率,一般该值不小于95%
3、其他参数介绍
- innodb_fast_down,默认值为1。
- 0,标识
mysq
l数据库关闭时,需完成所有的full purge
和merge buffer
,并将所有脏页刷新到磁盘 - 1,不需要完成上述
full purge
和merge buffer
操作,刷新部分脏页 - 2,不完成上述
full purge
和merge buffer
操作,也不刷新脏页,而是将日志都写入日志文件
- sync_binlog
- 0:不同步,日志何时刷到磁盘由FileSystem决定,这个性能最好。
- n:每写n次事务(注意,对于非事务表来说,是n次事件,对于事务表来说,是n次事务,而一个事务里可能包含多个二进制事件),MySQL将执行一次磁盘同步指令fdatasync()将缓存日志刷新到磁盘日志文件中。Mysql中默认的设置是sync_binlog=0,即不同步,这时性能最好,但风险最大。一旦系统奔溃,缓存中的日志都会丢失。
在innodb的主从复制结构中,如果启用了二进制日志(几乎都会启用),要保证事务的一致性和持久性的时候,必须将sync_binlog的值设置为1,因为每次事务提交都会写入二进制日志,设置为1就保证了每次事务提交时二进制日志都会写入到磁盘中,从而立即被从服务器复制过去。
- innodb_support_xa
两段式提交参数 - innodb_flush_log_at_trx_commit
- 0 : 提交事务的时候,不立即把 redo log buffer 里的数据刷入磁盘文件的,而是依靠 InnoDB 的主线程每秒执行一次刷新到磁盘。此时可能你提交事务了,结果 mysql 宕机了,然后此时内存里的数据全部丢失。
- 1 : 提交事务的时候,就必须把 redo log 从内存刷入到磁盘文件里去,只要事务提交成功,那么 redo log 就必然在磁盘里了。注意,因为操作系统的“延迟写”特性,此时的刷入只是写到了操作系统的缓冲区中,因此执行同步操作才能保证一定持久化到了硬盘中。
- 2 : 提交事务的时候,把 redo 日志写入磁盘文件对应的 os cache 缓存里去,而不是直接进入磁盘文件,可能 1 秒后才会把 os cache 里的数据写入到磁盘文件里去。