问一个数据库的问题
很简单的问题。
我们在使用stl或vc提供的文件操作接口时(如ifstream,CFile),在更改文件中间的数据时,如果新的数据大于(或者)旧的数据,(保存时)会导致文件全部重写(到硬盘);如果等于旧的数据长度时,(保存时)只是修改的部分重写。
1)我的理解对不对?或者操作系统会用某种方法减少文件重写的可能性?
2)数据库文件通常很大,更改一个数据不可能导致全部重写文件。他是怎么避免的?有哪些策略。我理解是数据库的每个项的数据长度是固定的,或者有最大长度限制,这样会导致许多空间没有被利用。