Mysql执行INSERT操作后是立即写硬盘的吗?

panjj1 2008-12-02 10:35:09
请教各位,如果只是单独执行一条INSERT操作,mysql会不会自动将数据缓存,等到一定大小或条数后再执行写硬盘操作,以减少磁盘I/O次数?
我理解设置“bulk_insert_buffer_size”只是在INSERT语句附带有多个VALUES值时效率较高,对INSERT语句仅附带有一个VALUES值并不能减少磁盘读写次数,不知道理解的对不对?
...全文
162 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
panjj1 2008-12-04
  • 打赏
  • 举报
回复
好的,谢谢!
yangxiao_jiang 2008-12-02
  • 打赏
  • 举报
回复
mysql不清楚,db2,oracle是不会立即写的。
fcoolx 2008-12-02
  • 打赏
  • 举报
回复
当然是之后,你可以google下

[Quote=引用 6 楼 panjj1 的回复:]
请问fcoolx,你说的“flush table”指的是什么?之前和之后有什么操作?能不能具体说明一下?
[/Quote]
懒得去死 2008-12-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 panjj1 的回复:]
那请问是不是会自动将数据缓存,等到一定大小或条数后再执行写硬盘操作,以减少磁盘I/O次数?
如果是这样的话缓存的大小或记录条数可以设置吗?
[/Quote]

对,达到这个参数的值。

不过你要记得你的max_allowed_packet一定要和这个值差不多大。
panjj1 2008-12-02
  • 打赏
  • 举报
回复
请问fcoolx,你说的“flush table”指的是什么?之前和之后有什么操作?能不能具体说明一下?
panjj1 2008-12-02
  • 打赏
  • 举报
回复
那请问是不是会自动将数据缓存,等到一定大小或条数后再执行写硬盘操作,以减少磁盘I/O次数?
如果是这样的话缓存的大小或记录条数可以设置吗?
懒得去死 2008-12-02
  • 打赏
  • 举报
回复
先放到内存里面,再写入磁盘。
fcoolx 2008-12-02
  • 打赏
  • 举报
回复
flush table 后写入磁盘
panjj1 2008-12-02
  • 打赏
  • 举报
回复
谢谢,继续等:-)

56,679

社区成员

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

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