我正在开发一个简单的数据库系统(不希望使用股票数据库系统的开销,即使像 gdbm/bdb 一样简单),我试图找出处理删除的最有效方法是什么数据库文件中的记录。
我提出了两种看似幼稚的解决方案,一种在内存方面很昂贵,另一种在磁盘空间方面很昂贵,而且两者在时间方面似乎都很昂贵。第一个涉及将整个数据库读入内存,然后在旧数据库上重写它,但需要删除的记录除外。第二个涉及逐条记录地从旧数据库文件复制到新数据库文件(跳过要删除的记录),然后将新的复制到旧的。
有没有更好的办法?现有的数据库包如何处理这个问题?