保存一些 "STATIC" 数据时,哪个速度更快?数组或缓存数据库表?

Which one is more speed for saving some "STATIC" data? Arrays or cached db tables?

在 Symfony 3.2 中:

我有一些这样的数据(作为数组):

$list1 = [
    'field-1' => ['id' => 1, 'group' => 'words', 'title' => 'Field 1'],
    'field-2' => ['id' => 2, 'group' => 'words', 'title' => 'Field 2'],
     ...
     ...
     ...
    'field-400' => ['id' => 400, 'group' => 'words', 'title' => 'Field 400'],
];

$list2 = [...];
...
$list30 = [...];

如您所见,它大约有 30 个 300-400 行的数组;但它们是一个 Static 数组。(它们以后不会改变)

哪种方式更好?

1- 指示 10 个服务并通过这样的方法获取每一行:

public function getSome($col) {
     return $this->list1[$col];
}

2-还是插入10个table(Entity)和缓存主题(因为速度快)?

感谢%

创建播种机并将此数据存储到数据库中。稍后,将此数据作为对象检索并根据您的要求使用。是的,您可以存储到缓存中以加快速度。

这个问题没有确定的答案。这取决于确切的数据集、访问模式(您查询同一个值多少次)、缓存类型(文件或内存),甚至可能取决于硬件资源。

根据经验和常识,我可以建议的是:

  • 使用 ORM 通常较慢,即使已缓存
  • 使用外部内存缓存服务(例如 memcached)通常比 PHP 内存(例如数组)中的值慢
  • 一个更有趣的优化可能是重新映射你的结构,这样你就有一个平面数组,其中每个键都包含整个路径(例如 $value["list1-field-1-id"])