存储引擎核心参数
双一标准之一:redo log刷盘参数
一。innodb_flush_log_at_trx_commit = 1/0/2
1.每次提交,写入磁盘
0.每秒写入操作系统内存 ,然后异步写入磁盘,可能丢失
2.每次提交写入操作系统内存,每秒异步写入磁盘,可能丢失
二。innodb_flush_method=fsync/o_DIRECT/O_SYNC
作用:控制mysql刷写磁盘是否使用os cache
fsync 的特性:
buffer pool的数据写入磁盘时,先写入os cache,在写入磁盘
redo buffer 的数据写入磁盘时,先写入os cache,在写入磁盘
os_sync:
buffer pool的数据写入磁盘时,先写入os cache,在写入磁盘
redo buffer 的数据写入磁盘时,跳过os cache,直接写入磁盘
o_DIRECT:
buffer pool的数据写入磁盘时,直接跳过os cache,在写入磁盘
redo buffer 的数据写入磁盘时,先写入os cache,在写入磁盘
(建议使用o_DIRECT)
OOM? out of marmery 内存溢出 ---> innodb_buffer_pool_size = 80% * total
三, innodb_buffer_pool_size
作用:数据缓冲区的总大小,缓冲数据页和
索引页,是mysql最大的内存区域,官方建议
不要超过百分之90%。
生产建议:75%以下,按需分配。
---查看引擎的状态可以查看你buffer pool使用情况:
show engine innodb status\G
设置 innodb_buffer_pool_size
set global innodb_buffer_pool_size = 131231231
或者 配置my.cnf
网友评论