关于myISAM插入次数和硬盘io写次数的关系问题

skyman_2001 2013-02-27 03:56:55
hi all, 请教一个问题:
我写测试程序往mysql的一个表里插数据(一个一个的insert,不是批量insert),该表存储引擎是myISAM。然后我统计了mysql的Com_insert次数,大概是8000次/秒,但我用iostat命令查看io写的次数,合并写(wrqm/s) 和 写(w/s) 加起来,也才1500次/秒。两个统计数据怎么相差这么大?难道是myISAM引擎对insert操作进行了合并?但没查到资料说myISAM引擎有insert buffer呀。
谢谢!
...全文
288 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Rotel-刘志东 2013-03-07
  • 打赏
  • 举报
回复
插入数据库中的数据先存在缓存中,后延缓存入数据库中。
rucypli 2013-03-07
  • 打赏
  • 举报
回复
引用 6 楼 skyman_2001 的回复:
引用 5 楼 ACMAIN_CHM 的回复:并不是表中的更新会马上写入到磁盘。 操作系统和数据库系统会延时写磁盘的。 延时写的话,是会把写操作合并吗?如果合并的话会反映到iostat命令显示结果的wrqm/s列(合并写)的吧?那样的话wrqm/s和w/s加起来应该等于初始的写的总数吧?
数据库的插入操作 和 wrqm w/s 没有太直接的联系
skyman_2001 2013-03-07
  • 打赏
  • 举报
回复
引用 5 楼 ACMAIN_CHM 的回复:
并不是表中的更新会马上写入到磁盘。 操作系统和数据库系统会延时写磁盘的。
延时写的话,是会把写操作合并吗?如果合并的话会反映到iostat命令显示结果的wrqm/s列(合并写)的吧?那样的话wrqm/s和w/s加起来应该等于初始的写的总数吧?
ACMAIN_CHM 2013-02-28
  • 打赏
  • 举报
回复
并不是表中的更新会马上写入到磁盘。 操作系统和数据库系统会延时写磁盘的。
skyman_2001 2013-02-27
  • 打赏
  • 举报
回复
引用 2 楼 wwwwb 的回复:
直接用LOAD DATA INIFILE不行?
我主要是想搞明白insert次数和io反应的写次数为什么会相差这么多,呵呵
skyman_2001 2013-02-27
  • 打赏
  • 举报
回复
引用 1 楼 rucypli 的回复:
mysql的是执行了8000次的insert 这些insert可能会由于磁盘缓存问题一起写入磁盘
磁盘缓存的话是不是就是iostat里的wrqm/s(每秒合并的写请求次数)?
wwwwb 2013-02-27
  • 打赏
  • 举报
回复
直接用LOAD DATA INIFILE不行?
rucypli 2013-02-27
  • 打赏
  • 举报
回复
mysql的是执行了8000次的insert 这些insert可能会由于磁盘缓存问题一起写入磁盘

56,679

社区成员

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

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