0

在 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 行的数组;但它们是静态数组。(以后不会更改)

这些方法中哪一种更好?

1- 指示 10 服务并通过以下方法获取每一行:

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

2-或插入10个表(实体)和缓存主题(因为高速)?

感谢%

4

2 回答 2

1

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

于 2017-03-25T11:15:31.170 回答
1

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

我可以从经验和常识中得出的建议是:

  • 使用 ORM 通常较慢,即使缓存
  • 使用外部内存缓存服务(例如 memcached)通常比 PHP 内存中的值(例如数组)慢
  • 一个更有趣的优化可能是重新映射您的结构,以便您拥有一个平面数组,其中每个键都包含整个路径(例如 $value["list1-field-1-id"])
于 2017-03-25T12:27:52.963 回答