我想知道,当我更新一个表的中间数据时,mysql如何将新数据写入存储在文件系统中的文件中?创建一个模板文件来存储中间数据的后部分?
发布于 2021-12-14 12:14:05
这里有一个基本的概念,你真的必须让你的头。
Database != File数据库所做的大部分事情发生在内存中,而不是在磁盘上。
当您在数据库中进行任何更改时,在将更改写入磁盘上的数据文件之前会发生很多事情。
这就是为什么您不应该使用纯基于文件的工具来处理基于数据库的工具,因为基于数据库的工具只能看到文件中的内容,而数据库正在做的大部分事情还没有出现。
要获得更多的背景信息,请阅读一些MySQL建筑文档。
请注意,里面有很多东西,但基本知识应该会有所帮助。(这一切都是免费的!)
发布于 2021-12-14 19:33:58
简单回答:数据存储在每个16 in的“块”中。这些块不一定按“顺序”排列。当您更新、插入或删除表中间的一行时,它会进入(或从)相应的块中删除。
如果这个块不是太大,它就会被“分割”成两个块。它们被放置在包含数据的“文件”中。
有关如何跟踪块,请参见"BTree“。数据由PRIMARY KEY排序。( BTree使用排序。)
https://dba.stackexchange.com/questions/303920
复制相似问题