mysql innodb 参数_MySQL InnoDB常见参数详解

一、文件(数据文件、日志文件)

1、相关参数:

innodb_data_home_dir

innodb_data_file_path=file_name:file_size[:autoextend[:max:max_file_size]]

注:

a、innodb_data_file_path的值应该为一个或多个 数据文件规格的列表。如果命名一个以上的数据文件,用 分号(‘;’)分隔它们

b、autoextend属性和后面跟着的属性只可被用来对innodb_data_file_path行里最后一个数据文件。

c、InnoDB不创建目录,所以在启动服务器之前请确认/ibdata目录的确存在

d、如果没有指定innodb_data_home_dir,则默认为mysql数据目录

e、如果你指定innodb_data_home_dir为一个空字符串,你可以为列在innodb_data_file_path值里的数据文件指定绝对路径。

[mysqld]

innodb_data_home_dir =

innodb_data_file_path=/ibdata/ibdata1:50M;/ibdata/ibdata2:50M:autoextend

二、参数

1、innodb_autoextend_increment(动态,默认为8M)

当自动扩展表空间被填满之时,为扩展而增加的尺寸(MB为单位)。

2、innodb_fast_shutdown(动态,默认为1)

0:在关闭之前做一个完全净化、插入缓冲合并和刷脏页,最慢,但重启最快

1:InnoDB在关闭之时跳过purge和insert buffer merge,只刷脏页

2:刷新日志并强制关闭,类似crash,数据不会丢,但在启动时会做一次崩溃恢复

mysql在关闭的时候进行的操作:

1、purge all:删除无用的undo页

2、merge insert buffer

3、flush dirty page

3、innodb_flush_log_at_trx_commit(动态,默认为1)

0:最快,日志缓冲按默认每秒一次地刷到磁盘,但在事务提交时不做操作,mysql崩溃时会丢失最后一秒的事务

1:最安全,日志缓冲按默认每秒一次地刷到磁盘,并在事务提交时刷新到日志文件,同时调用fsync刷新到磁盘

2:折中,日志缓冲按默认每秒一次地刷到磁盘,并在事务提交时刷新到日志文件,但不调用fsync,只有在系统崩溃时才会丢失最后一秒的事务

4、innodb_force_recovery(静态,默认为0),用于从损坏的DB转储数据

0:表示当需要恢复时执行所有的恢复操作(即校验数据页/purge undo/insert buffer merge/rolling back&forward).当不能进行有效的恢复操作时,mysql有可能无法启动,并记录下错误日志.

1.(SRV_FORCE_IGNORE_CORRUPT):     忽略检查到的corrupt页.

2.(SRV_FORCE_NO_BACKGROUND):    阻止主线程的运行,如主线程需要执行full purge操作,会导致crash.

3.(SRV_FORCE_NO_TRX_UNDO):    不执行事务回滚操作.

4.(SRV_FORCE_NO_IBUF_MERGE):    不执行插入缓冲的合并操作.

5.(SRV_FORCE_NO_UNDO_LOG_SCAN):    不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交.

6.(SRV_FORCE_NO_LOG_REDO):    不执行前滚的操作.

当设置参数值大于0后,可以对表进行select、create、drop操作,但insert、update、delete这类操作是不允许的

5、innodb_lock_wait_timeout

InnoDB事务在回滚之前可以等待一个锁定的秒数

6、innodb_max_dirty_pages_pct

InnoDB中的主线程试着从缓冲池写页面,使得脏页的百分比不超过这个值。

在show innodb status的log段中,可以查看Last checkpoint at与Log flushed up to的距离判断当前脏页的情况

在BUFFER POOL AND MEMORY中,查看Modified db pages与Buffer pool size的比例关系,该值约等于innodb_max_dirty_pages_pct

show innodb status\G;

LOG

---

Log sequence number 16 881655880

Log flushed up to   16 881649862

Last checkpoint at  16 546135914

可以看到检查点与log sequence number,Log flushed up to都有相当大的差距。

----------------------

BUFFER POOL AND MEMORY

----------------------

Total memory allocated 19338953832; in additional pool allocated 13600768

Buffer pool size   1048576

Free buffers       17666

Database pages     1009478

Modified db pages  204553

修改的页占到整个数据库buffer pool页将近20%,大小为204553*16k/1024=3.196G

7、innodb_max_purge_lag

8、innodb_mirrored_log_groups(默认为1,没有镜像)

为数据库保持的日志组内同样拷贝的数量。

9、innodb_open_files

在InnoDB中,这个选项仅与你使用多表空间时有关。它指定InnoDB一次可以保持打开的.ibd文件的最大数目。最小值是10。 默认值300。

对.ibd文件的文件描述符是仅对InnoDB的。它们独立于那些由--open-files-limit服务器选项指定的描述符,且不影响表缓存的操作。

innodb_thread_concurrency

InnoDB试着在InnoDB内保持操作系统线程的数量少于或等于这个参数给出的限制。如果有性能问题,并

且SHOW INNODB STATUS显示许多线程在等待信号,可以让线程“thrashing” ,并且设置这个参数更小或更

大。如果你的计算机有多个处理器和磁盘,你可以试着这个值更大以更好地利用计算机的资源。一个推荐的值

是系统上处理器和磁盘的个数之和。值为500或比500大会禁止 调用并发检查。默认值是20,并且如果设置大

于或等于20,并发检查将被禁止。

·   innodb_status_file

这个选项让InnoDB为周期的SHOW INNODB STATUS输出创建一个文件/innodb_status.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2126748/,如需转载,请注明出处,否则将追究法律责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值