linux文件直接/间接IO

话不多说直接上图

错了  错了 

linux文件IO分为两种 

一.直接IO(直接去访问磁盘)

这种方式(效率比较低,因为每次我们都是直接去访问磁盘,CPU和磁盘之间的读写速度差了几个数量级,降低了读取的效率,但是这种方式也并非一无是处,直接IO,不需要经过缓存区,如果在缓存还没有同步到物理磁盘的时候突然宕机【这个是有可能的】,那缓存中的数据就会丢失,既然你去看日志是写成功的,它这个成功仅仅是表示 你把数据从用户态写到内核态,写成功了,但并没有同步磁盘,宕机之后,内存清空,你写的东西就丢失了【所以用标准IO的时候一定要注意同步sync】,如果是什么重要的文件,那麻烦就大了,但是直接IO是不会经过缓冲区的,所以不会产生这样的问题)。 

直接IO在 数据库中有 使用到但这里大家肯定有所疑问,那 数据库的 IO效率是不是特别低呀?

 其实 数据库 虽然用的直接IO(没有通过内核区域的缓存,但是它这个 数据库的软件自己提供了 第三方的缓存,所以 数据库的IO就得到了 优化,效率还是可以的)。

猜你喜欢

转载自blog.csdn.net/qq_44065088/article/details/108428240