MYSQL数据存储在磁盘的位置

看到一本书
描述了myisam引擎下的索引算法
是btree索引,索引里面存放了 使用索引的字段值 和 数据记录存放的物理地址
我想问下 一个表 假如有十条记录 而每条记录 由多个字段值组成的
eg 学生表 有 id name class sex 我给id建立索引!
然后索引表查到了 id 和物理地址

那么物理地址去数据表 也就是磁盘的物理地址中去找这个记录

那么一条记录存在磁盘空间的物理地址是一起的吗?还是一条记录里面一个字段值 一个物理地址?!

阅读 3.7k
2 个回答

文中的“物理地址”当然是指文件里的位置了,对应到磁盘实际的物理地址(磁道、扇区等,SSD的地址等)还需要操作系统做转换。

道理很简单,MyISAM直接复制数据库文件是可以用的,复制后磁盘实际物理地址是有变化的,而索引内容却不会改变。

mysql是按照行存储数据,因此一行数据是一个统一的物理地址;myslq的最小物理存储单位为block,如果行的字段少,可能会有多行存储在一个block中的情况。

列式数据库不同的字段存在在不同的物理地址。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题