是否有一种 PHP 序列化格式,我可以在不加载所有内容的情况下寻找它


Is there a serialization format for PHP that I can seek without loading everything?

我有一个巨大的数组,如下所示:

array(
  '5486215d2f02cc0f257ebda5125486215d2f02c' /* (SHA1) */ => array(
    'filename' => 'p_2486433.png',
    'directory' => 'aaaac2013'
  ),
  '95b23be7c97d532295b23be7c97d532295b23be' => array(
    'filename' => 'p_4857312.png',
    'directory' => 'aaaff2013'
  ),
  ...
)

目前我将其存储为 JSON,这需要我加载整个结构,这是它与serialize()共享的缺点。

是否有一种通用格式可以维护某种索引,以便我可以在不将整个内容加载到内存中的情况下查找我正在寻找的条目?

我看到有关创建基于文件的数据库的评论,但是如果这不起作用,您可能会将较大的文件分解为较小的部分,例如每个文件一条记录,然后使用目录分组。

当然,这样做也有缺点,例如用大量条目淹没文件系统,从长远来看可能会产生一些问题。