【发布时间】:2014-07-18 19:31:21
【问题描述】:
我遇到了 dets 文件大小的问题。
> {ok,D1} = dets:open_file(sample_dets_file, [{type, set},{auto_save,3}]).
{ok,sample_dets_file}
> [dets:insert(D1,{{fid,X},"this is sample data"}) || X <- lists:seq(1,10000)].
> dets:info(D1).
[{type,set},
{keypos,1},
{size,10000},
{file_size,769748},
{filename,"sample_dets_file"}]
> [dets:delete(D1,{fid,X}) || X <- lists:seq(1,10000)].
> dets:info(D1).
[{type,set},
{keypos,1},
{size,0},
{file_size,770092},
{filename,"sample_dets_file"}]
插入后 - {size,10000}, {file_size,769748}
删除后-{size,0}, {file_size,770092}.
即使表为空,文件大小也没有减少。但是当我执行delete_all_objects 时,文件大小恢复正常。
> dets:delete_all_objects(D1).
> dets:info(D1).
[{type,set},
{keypos,1},
{size,0},
{file_size,5464},
{filename,"sample_dets_file"}]
我不明白我还需要做什么以及删除操作以减少文件大小。 问题是,由于dets file_size被限制为4gb,即使删除了对象,我也达到了dets文件的大小限制。
【问题讨论】: