PHP - 会话变量性能(会话var与读取文件)

时间:2016-09-21 07:18:35

标签: php session-variables

我正在构建一个网站,用户可以在该网站上比较产品之间的规格。用户可以查看单个产品的规格,我只需要该特定产品的规格,但他们也可以将所选产品与网站上提供的任何其他产品进行比较。我想我最终会得到75-100种产品。

所有规范都可在全局csv文件中使用。每个产品可能有37个功能,介于75-100之间。该文件的大小约为50Kb。我还为每个产品包含相同数据的单个文件,但仅针对一个产品。

我想知道什么是确保良好表现的最佳方式:

  1. 将整个文件加载到$ _SESSION中,使其始终可用于所有页面。这意味着所有数据都会被加载一次,并且无需任何额外请求就可以使用,但这会影响性能吗?

  2. 在需要时单独加载文件但这意味着如果有人开始比较产品(这就是目标),php将不得不一直读取文件

  3. 将数据存储在数据库中,并在每次必要时访问

  4. 什么是最好的选择?如果您想到任何其他解决方案,我当然也会感兴趣。

    由于

2 个答案:

答案 0 :(得分:2)

由于您要存储数据,您可能希望将其放入数据库中;)

由于数据库引擎非常擅长缓存,因此您可能不会很快担心性能,而且如果'文件'突然变得更大,您自己也会有一些头痛预防。

如果数据库的性能不够,你总是可以求助于MySQL中的MEMORY表或例如memcached。

答案 1 :(得分:2)

对于每个请求,仍然需要将csv加载到$ _SESSION中,这听起来效率不高。

Mysql非常适合写一些/一些读取解决方案,但在我看来,你的情况更像是一种写作 - 很少/经常阅读的情况。

使用内存缓存(如下面的选项之一)来存储csv的内容可能会更有意义: