IO

沉沦 2010-12-03 01:55:02
请问一下,为什么说对数据文件读取是用的随机IO,对日志文件时用的顺序IO呢?。。

能说明一下原理吗? 希望有详解。。

有图解更好。。。
...全文
98 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
iihero 2010-12-09
  • 打赏
  • 举报
回复
随机IO:可以快速定位数据的位置. (这个,通过数据页的页表可以实现)
顺序IO:只能顺序读取,不能跳过当前块,读下一个日志项,实际上这是一种堆文件结构
jiahehao 2010-12-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 m582445672 的回复:]
我的理解是:顺序IO指的是,用IO在磁盘上查找的数据是连续存放的.
随即IO指的是,用IO在磁盘上查找的数据是离散存放的.

日志文件指的在my.cnf里面的log= 配置文件..

那么为什么很多资料上说,我从数据库里面取数据,就会是随即IO呢?~ 不能是顺序IO吗
[/Quote]

IO的定义官方就是指写入读出的操作吧.我的理解,如果你数据物理上是顺序存储,你的IO就是顺序的.请版主斧正.不过我觉得此问题似乎与我们用户无关,因为你无法控制DB把数据写到某个具体位置.无从优化.
zuoxingyu 2010-12-06
  • 打赏
  • 举报
回复
这个问题需要继续探讨
顶起来
沉沦 2010-12-04
  • 打赏
  • 举报
回复
我的理解是:顺序IO指的是,用IO在磁盘上查找的数据是连续存放的.
随即IO指的是,用IO在磁盘上查找的数据是离散存放的.

日志文件指的在my.cnf里面的log= 配置文件..

那么为什么很多资料上说,我从数据库里面取数据,就会是随即IO呢?~ 不能是顺序IO吗



ACMAIN_CHM 2010-12-03
  • 打赏
  • 举报
回复
首先,楼主需要把 什么是 顺序IO 什么是 随机IO ,所指的 日志文件 是什么讲清楚,才有可能继续讨论这个问题。

可惜的是,楼主根本不原意就此作答。
zuoxingyu 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 m582445672 的回复:]
引用 5 楼 rucypli 的回复:
选取数据的时候 数据的位置是不确定的 所以是随机读取
写日志的时候肯定是写在日志尾部 位置确定


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

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

我说的可能也有问题,理解得不深,请斑竹斧正。
小小小小周 2010-12-03
  • 打赏
  • 举报
回复
事务日志在创建之初就是申请的连续的物理空间,而且每次写入都是紧接着之前的日志数据顺序的往后写入,基本上都是一个顺序的写入过程
沉沦 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 rucypli 的回复:]
选取数据的时候 数据的位置是不确定的 所以是随机读取
写日志的时候肯定是写在日志尾部 位置确定
[/Quote]

向这样说,貌似就算字段上有index,读取数据,也可能会产生大量随机IO了?
rucypli 2010-12-03
  • 打赏
  • 举报
回复
选取数据的时候 数据的位置是不确定的 所以是随机读取
写日志的时候肯定是写在日志尾部 位置确定
fxs_2008 2010-12-03
  • 打赏
  • 举报
回复
一般而言,日志在初始化时就申请了固定空间且一直打状态;

而数据库的磁盘除了递增表(无删除更新世界操作)外,磁盘是随机的
ACMAIN_CHM 2010-12-03
  • 打赏
  • 举报
回复
[Quote]IO是写入写出吗?还是读入读出呢?[/Quote]

IO 是 input / output
文件记录的IO一般是指文件记录访问方式,有随机,顺序等方式。
mysqldbd 2010-12-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 m582445672 的回复:]
请问一下,为什么说对数据文件读取是用的随机IO,对日志文件时用的顺序IO呢?。。

能说明一下原理吗? 希望有详解。。

有图解更好。。。
[/Quote]

IO是写入写出吗?还是读入读出呢?
ACMAIN_CHM 2010-12-03
  • 打赏
  • 举报
回复
楼主能解释一下什么是 顺序IO,什么是 随机IO ? 另外你的日志文件是指什么?

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧