标签:htm 参数 nbsp tor 包含 efault end redo path
说明:配置参数存放在my.cnf文件中,有需求可自定制。
# 表空间模式(即.ibd文件,存放了行数据,索引及LSN号。该文件成为独立表空间):
参考:https://www.cnblogs.com/quzq/p/12833272.html
innoda_file_per_table=1,1代表独立表空间,5.6版默认模式;0代表共享表空间,5.6之前的默认模式
5.6版之前表空间没有独立出来,存放在ibdata1文件中。设为1后创建的表会在data目录中生成表名.ibd文件,
设置为0后创建的表不会生成该文件,会把.ibd中的内容存放到ibdata1文件中。
# 存储引擎配置:
default_storage_engine=innodb(5.6的默认引擎)
# 配置共享表空间文件个数和大小(即ibdata1文件,该文件成为共享表空间):
参考:https://www.cnblogs.com/quzq/p/12833135.html
innodb_data_file_path=ibdata1:512M:ibdata2:512M:autoextend
该配置通常在初始化之前配好,会生成两个文件
# 双一标准的其中一个(默认是1)
innodb_flush_log_at_trx_commit=1,用于控制redo log buffer中数据写入磁盘redo log文件的。
值1代表什么呢?(redo log buffer,data buffer poll, undo log buffer都是存在于mysql内存中的)
mysql启动后会向操作系统申请专用的内存空间,配置为1代表在commit命令后会立即把redo log buffer
递交到操作系统内存中,然后由操作系统再立即写入到磁盘的redo log文件中。
值0代表每秒执行一次把redo log buffer递交到操作系统内存,操作系统内存也每秒往redo log中写入一次。
因为是每秒一次,如果在1秒内发生大量的事务递交,突然宕机,会造成1秒间隔内发生的事务数据丢失
值2代表每次commit后立即把redo log buffer数据递交到操作系统内存,然后操作系统每秒往redo log中写入一次
缺点和0一样,只不过能好一点,如果只是mysql服务宕机的话,提交到操作系统内存的事务还不会丢失。
补充:无论哪个值,redo log buffer递交到操作系统内存的日志都会包含所有,无论该事务是否commit.
# 控制mysql内存中logs到磁盘的过程
innodb_flush_method=o_direct或fsync, 控制的是redo log buffer和data buffer pool,过程如下:
标签:htm 参数 nbsp tor 包含 efault end redo path
原文地址:https://www.cnblogs.com/quzq/p/12864886.html