IO 请问一下,为什么说对数据文件读取是用的随机IO,对日志文件时用的顺序IO呢?。。 能说明一下原理吗? 希望有详解。。 有图解更好 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主能解释一下什么是 顺序IO,什么是 随机IO ? 另外你的日志文件是指什么? IO 是 input / output 文件记录的IO一般是指文件记录访问方式,有随机,顺序等方式。 向这样说,貌似就算字段上有index,读取数据,也可能会产生大量随机IO了? INNODB的记录是按主键聚集的,索引和数据存储在同一个块里面,在移动索引的时候,同时会把记录位置也移动。所以对于INNODB表来说,用主键索引查询的时候,IO是连续的。其他第二索引查询的时候,先通过主键索引的指针找到主键,再通过主键找到记录,产生“2次搜寻”,这时候的IO是不连续的。我说的可能也有问题,理解得不深,请斑竹斧正。 首先,楼主需要把 什么是 顺序IO 什么是 随机IO ,所指的 日志文件 是什么讲清楚,才有可能继续讨论这个问题。可惜的是,楼主根本不原意就此作答。 我的理解是:顺序IO指的是,用IO在磁盘上查找的数据是连续存放的. 随即IO指的是,用IO在磁盘上查找的数据是离散存放的. 日志文件指的在my.cnf里面的log= 配置文件.. 那么为什么很多资料上说,我从数据库里面取数据,就会是随即IO呢?~ 不能是顺序IO吗 IO的定义官方就是指写入读出的操作吧.我的理解,如果你数据物理上是顺序存储,你的IO就是顺序的.请版主斧正.不过我觉得此问题似乎与我们用户无关,因为你无法控制DB把数据写到某个具体位置.无从优化. 随机IO:可以快速定位数据的位置. (这个,通过数据页的页表可以实现)顺序IO:只能顺序读取,不能跳过当前块,读下一个日志项,实际上这是一种堆文件结构 求 where 问题 MySQL5.1.4 强制使用所用报错! 按时间段分组查询问题 mysql级别的负载均衡 求一些优化方案,分不够可以另开贴再加! 同时查询两个表,估计要用 left join 问一个查询语句的问题 用一台linux装mysql作为数据库服务器,windows下的程序能否访问它? 一个mysql的初学者的问题!来者有分 Mysql 数据库 去除某个字段的前10个字符 mysql服务启动不了了 MySqlConnection连远程数据库经常错错
IO 是 input / output
文件记录的IO一般是指文件记录访问方式,有随机,顺序等方式。
向这样说,貌似就算字段上有index,读取数据,也可能会产生大量随机IO了?
INNODB的记录是按主键聚集的,索引和数据存储在同一个块里面,在移动索引的时候,同时会把记录位置也移动。所以对于INNODB表来说,用主键索引查询的时候,IO是连续的。其他第二索引查询的时候,先通过主键索引的指针找到主键,再通过主键找到记录,产生“2次搜寻”,这时候的IO是不连续的。我说的可能也有问题,理解得不深,请斑竹斧正。
随即IO指的是,用IO在磁盘上查找的数据是离散存放的. 日志文件指的在my.cnf里面的log= 配置文件.. 那么为什么很多资料上说,我从数据库里面取数据,就会是随即IO呢?~ 不能是顺序IO吗
IO的定义官方就是指写入读出的操作吧.我的理解,如果你数据物理上是顺序存储,你的IO就是顺序的.请版主斧正.不过我觉得此问题似乎与我们用户无关,因为你无法控制DB把数据写到某个具体位置.无从优化.
顺序IO:只能顺序读取,不能跳过当前块,读下一个日志项,实际上这是一种堆文件结构