"最后,我还是建议大家在分析这个问题之前,把数据库跟文件系统的本质的东西了解一下。我相信一旦你真正的理解了他们的本质,你就会认同我的这句话:数据库实质上也是一个特殊的文件系统,只是其重点不在跟人交互,而是在跟数据库管理系统交互。"
上面这段话是cu上的一个讨论很热的帖子上某人说的。
http://www.chinaunix.net/jh/23/527591.html
其实“裸设备都不可能不经文件系统的组织,直接被读写",这句话我也不同意的,可以直接调用int13读写,bios之后不就是int13么,这时候根本没有什么文件系统概念,显而易见的。
数据库不经过fs的来直接装在数据,这句话如果严格来说,是否应该增加个地方,
”数据库不经过 os的 fs的来直接装在数据,而是自己也有一套私有的,未发表的,类似fs的机制来管理数据,是么?
“最简单的办法,一个lv从n byte开始有m byte长度记录后面的记录个数,所有的记录在m+n之后。
只需要lseek到n自己,先读出m字节的数据,得到数据记录个数,然后就可遍历所有记录了”
请教t兄,“一个lv从n byte开始有m byte长度记录后面的记录个数”,这件事情,程序是怎么知道的?作为实际应用,不可能写死在程序里面把?一定有一个全局固定的地方(superblock,inode等),存放全局记录偏移,这就是我的看法,既然有这个区域,那么就可以算是一种类似fs的机制,但是这个fs不是os的fs,os的fs把磁盘数据块抽象成各种文件,但是数据库把数据抽象成表,那么可以说是表管理系统,而不是文件管理系统。