MySQL InnoDB常见参数详解
发表于:2024-11-18 作者:千家信息网编辑
千家信息网最后更新 2024年11月18日,一、文件(数据文件、日志文件)1、相关参数:innodb_data_home_dirinnodb_data_file_path=file_name:file_size[:autoextend[:max
千家信息网最后更新 2024年11月18日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.
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.
文件
数据
日志
事务
磁盘
线程
缓冲
参数
检查
动态
目录
系统
最快
处理器
多个
属性
数据库
数量
最后一秒
服务器
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
完整的软件开发流程概要设计
构建什么样的网络安全防护体系
2008数据库端口修改
杭州珍林网络技术有限公司地址
佳能c7260安装服务器
去除服务器依赖
阿里云服务器给客户
日本网络安全战略 安全内参
数据库商家
不能安全的连接到服务器地址
服务器硬盘一点点的减少
数据库常见模型有哪些
物一网络技术有限公司
网络数据库开发 音乐网站
自学软件开发书
江苏标准软件开发厂家
福清国家网络安全宣传周活动
重庆erp软件开发一般要多少钱
金蝶服务器维修价格
北仑软件开发项目
360 服务器安全解决方案
慕课服务器
个性化网络技术服务比较
数据库在企业中的作用 原因
数据库查询近十天的记录
做软件开发的怎么挣钱
服务器网络信号不好怎么办
cad基础地理数据库
福州九一众恒网络技术
英雄联盟服务器炸了2022