为了账号安全,请及时绑定邮箱和手机立即绑定

数据库底层存续还是通过文件,那修改字段值,映射到文件是怎么操作的?

数据库底层存续还是通过文件,那修改字段值,映射到文件是怎么操作的?

翻阅古今 2018-07-12 12:25:04
文件中如果我要修改某一个字段,貌似我记得修改文件中间某一行的值需要重写整个文件,因为文件只能追加写,无法中间插入吧,Mysql这块是怎么优化的呢,采用什么策略,也是重写整个文件嘛
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

一个数据库几个GB甚至几百GB、更大的几个TB以上,重写整个数据文件要多大的IO速度?

“修改文件中间某一行的值” 可能只是更新数据文件里面的一小块数据而已。

可能是利用 文件随机读写 的方式实现的,在磁盘上的数据都是有结构的(比如说数据表有数据表的结构、每一个列、行都有固定的大小),首先先计算好要更新的数据块的偏移地址和数据块的大小,然后通过 seek 移动指针 和 write 实现覆盖更新文件的数据。


查看完整回答
反对 回复 2018-07-12
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

数据存储除了文件,还有裸设备、Oracle ASM等等。具体可以看各家的文档,有结构的基本说明。不过更深就是人家的独家秘方了。

查看完整回答
反对 回复 2018-07-12
  • 2 回答
  • 0 关注
  • 539 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信