IO

 请问一下,为什么说对数据文件读取是用的随机IO,对日志文件时用的顺序IO呢?。。 能说明一下原理吗? 希望有详解。。 有图解更好

解决方案 »

  1.   

    楼主能解释一下什么是 顺序IO,什么是 随机IO ? 另外你的日志文件是指什么?
      

  2.   


    IO 是 input / output 
    文件记录的IO一般是指文件记录访问方式,有随机,顺序等方式。
      

  3.   


     向这样说,貌似就算字段上有index,读取数据,也可能会产生大量随机IO了?
      

  4.   


    INNODB的记录是按主键聚集的,索引和数据存储在同一个块里面,在移动索引的时候,同时会把记录位置也移动。所以对于INNODB表来说,用主键索引查询的时候,IO是连续的。其他第二索引查询的时候,先通过主键索引的指针找到主键,再通过主键找到记录,产生“2次搜寻”,这时候的IO是不连续的。我说的可能也有问题,理解得不深,请斑竹斧正。
      

  5.   

    首先,楼主需要把 什么是  顺序IO 什么是 随机IO  ,所指的 日志文件 是什么讲清楚,才有可能继续讨论这个问题。可惜的是,楼主根本不原意就此作答。
      

  6.   

     我的理解是:顺序IO指的是,用IO在磁盘上查找的数据是连续存放的.
                随即IO指的是,用IO在磁盘上查找的数据是离散存放的.            日志文件指的在my.cnf里面的log=  配置文件..  那么为什么很多资料上说,我从数据库里面取数据,就会是随即IO呢?~ 不能是顺序IO吗
                             
       
      

  7.   


    IO的定义官方就是指写入读出的操作吧.我的理解,如果你数据物理上是顺序存储,你的IO就是顺序的.请版主斧正.不过我觉得此问题似乎与我们用户无关,因为你无法控制DB把数据写到某个具体位置.无从优化.
      

  8.   

    随机IO:可以快速定位数据的位置. (这个,通过数据页的页表可以实现)
    顺序IO:只能顺序读取,不能跳过当前块,读下一个日志项,实际上这是一种堆文件结构