io操作 mysql_怎样的操作才算是一个IO操作?

本文深入解析了IO的概念,特别是在磁盘层面,一个IO操作指读写磁盘的扇区。同时,介绍了transaction在更高层次的含义,如在银行业务中的应用,涉及多个底层IO操作。此外,还提到了数据型和非数据型IO的区别,并在网络文件系统中进行了举例。通过这些,阐述了transaction与IO的层次关系。
摘要由CSDN通过智能技术生成

你好.

关于如何才算一个IO的问题,我可以在这里简要讲解,IO在不同层次有不同的概念和单位。一次IO就是一次请求,对于磁盘来说,一个IO就是读或者写磁盘的某个或者某段扇区,读写完了,这个IO也就结束了。【篇幅有限很多内容没办法详细解释,更详细的内容请参考《大话存储》的前几章。】

至于transaction,就是更高层的内容了,transaction往往与业务逻辑有关系。

比如你去银行存一笔钱,你存这笔钱的过程中,服务器向数据库中写入的所有关联的操作就算是一个transaction,而完成这一个transaction,往往对应了底层对磁盘的多次IO。比如,读出数据库中原来的数据,比如你原来存款是10000元,他读出来了,然后显示在柜台终端上,然后操作员存入5000元,数据传输到数据库服务器,数据库服务器在内存中更改这个数值,从10000更改为1.5000,然后数据库Flush的时候,将对应的数据库写入磁盘,完成后,柜台终端显示成功。这个过程中对应了多次磁盘IO。

补充几点:IO类型有多种,数据型IO和非数据型IO。

前者是指IO请求中包含读写扇区的数据的,后者是指IO中不包含扇区数据,而是承载其他信息的,如SCSI协议中的很多操作码,比如0×01就是zero指令,命令磁盘自行向所有扇区中写0。或者诸如report LUN这种常见的指令,它们是命令磁盘做一些其他的动作,而不是真正的读写扇区中的数据。对于网络文件系统来说,也有数据型IO和非数据型IO,前者比如读写操作,后者比如NFS中的mount、fsinfo、fsstat、getattr等。这就是transaction与IO的关系。

希望能帮助到你~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值