innodb_flush_method理解【转】
innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式,对于这个参数,文档上是这样描述的:
有三个值:fdatasync(默认),O_DSYNC,O_DIRECT
默认是fdatasync,调用fsync()去刷数据文件与redo log的buffer
为O_DSYNC时,innodb会使用O_SYNC方式打开和刷写redo log,使用fsync()刷写数据文件
为O_DIRECT时,innodb使用O_DIRECT打开数据文件,使用fsync()刷写数据文件跟redo log
首先文件的写操作包括三步:open,write,flush
上面最常提到的fsync(int fd)函数,该函数作用是flush时将与fd文件描述符所指文件有关的buffer刷写到磁盘,并且flush完元数据信息(比如修改日期、创建日期等)才算flush成功。
使用O_SYNC方式打开redo文件表示当write日志时,数据都write到磁盘,并且元数据也需要更新,才返回成功
O_DIRECT则表示我们的write操作是从mysql innodb buffer里直接向磁盘上写
至此我再总结一下三者写数据方式:
fdatasync模式:写数据时,write这一步并不需要真正写到磁盘才算完成(可能写入到操作系统buffer中就会返回完成),真正完成是flush操作,buffer交给操作系统去flush,并且文件的元数据信息也都需要更新到磁盘。
O_DSYNC模式:写日志操作是在write这步完成,而数据文件的写入是在flush这步通过fsync完成
O_DIRECT模式:数据文件的写入操作是直接从mysql innodb buffer到磁盘的,并不用通过操作系统的缓冲,而真正的完成也是在flush这步,日志还是要经过OS缓冲
innodb_flush_method理解【转】相关推荐
- innodb_flush_method 的理解
转载自: https://www.cndba.cn/bensoncd/article/2093 陶方在<innodb_flush_method带来的性能影响>中从实验角度比较了fdatas ...
- mysql innodb flush method_对innodb_flush_method的一点解释
官方文档描述如下: By default, InnoDB uses the fsync()system call to flush both the data and log files. If in ...
- MySQL Innodb_flush_method
本文出自: http://weipengfei.blog.51cto.com/1511707/985968 innodb_flush_log_at_trx_commit 决定了事务日志何时write ...
- 通用解题法——回溯算法(理解+练习)
积累算法经验,积累解题方法--回溯算法,你必须要掌握的解题方法! 什么是回溯算法呢? 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就&quo ...
- stream流对象的理解及使用
我的理解:用stream流式处理数据,将数据用一个一个方法去 . (点,即调用) 得到新的数据结果,可以一步达成. 有多种方式生成 Stream Source: 从 Collection 和数组 Co ...
- Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)
1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...
- java局部变量全局变量,实例变量的理解
java局部变量全局变量,实例变量的理解 局部变量 可以理解为写在方法中的变量. public class Variable {//类变量static String name = "小明&q ...
- 智能文档理解:通用文档预训练模型
预训练模型到底是什么,它是如何被应用在产品里,未来又有哪些机会和挑战? 预训练模型把迁移学习很好地用起来了,让我们感到眼前一亮.这和小孩子读书一样,一开始语文.数学.化学都学,读书.网上游戏等,在脑子 ...
- 熵,交叉熵,散度理解较为清晰
20210511 https://blog.csdn.net/qq_35455503/article/details/105714287 交叉熵和散度 自己给自己编码肯定是最小的 其他的编码都会比这个 ...
最新文章
- c# BackgroundWorker组件介绍(属性、方法、事件)
- Android ramdisk.img system.img userdata.img 介绍与使用
- IOS之提示Interface type cannot be statically allocated
- python保存html图_如何保存“完整网页”不仅仅是使用Python的基本HTML
- jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明
- java 构造函数嵌套_java – spring – 构造函数注入和覆盖嵌套bean的父定义
- C# ManualResetEvent 与 AutoResetEvent 区别
- 51单片机-STC89C52系列学习第一篇之IO口学习
- 升级安卓6.0.1后wifi出现的已连接 但无法访问互联网的问题
- 从“七宗罪”角度,看互联网产品与人性的深沉纠缠
- 网易云音乐爬虫 数据可视化分析
- c++——ignore()函数
- 飞天遁地、来去自如?Oracle数据库秉承技术当先,用户也来说说看
- 【第八章】 C语言之牛客网力扣刷题笔记 【点进来保证让知识充实你一整天】
- php 编码安全,PHP编码安全之二: 代码执行漏洞
- 计算机科学与技术论文提纲,计算机科学与技术专业论文提纲格式模板 计算机科学与技术专业论文提纲怎样写...
- spring boot 中使用 POP3协议读取并解析邮件
- MMC型APF,MMC型statcom,MMC型储能系统,MMC-HVDC
- ENVI: 如何创建GLT文件并基于GLT对图像进行几何校正?
- 程序员掉发算工伤?程序员的你应该如何防止Tu头?
热门文章
- java对象深克隆_JAVA中对象的克隆及深拷贝和浅拷贝
- 修改html自带组件样式,能否直接在组件html上为组件根元素设置自定义class
- mysql heartbeat 慢_Mysql 慢日志优化分析方法
- 设置 Visual Studio 文件版权信息 - C语言零基础入门教程
- BugkuCTF-PWN题canary超详细讲解
- fi sap 凭证冲销 稅_SAP 成本收集器与重复制造配置手册
- mysql表里插不进去数据_Oracle数据中表值插不进去问题(转)
- c语言tmplink,为了便于阅读,偿试把BLHeli的汇编源程序改成C语言格式
- python绘制折线图显示数据_漂亮图表也可用python信手拈来!一文教你学会用Python绘制堆积折线图...
- 最大素数c语言,for语句计算输出10000以内最大素数怎么搞最简单??各位大神们...