2016-09-21 44 views
3

我建立一个网站,用户将能产品之间的比较规范。用户可以查看一个单品的规格,我只需要规范针对特定的产品,但他们也将能够选择的产品与网站上提供的任何其他产品进行比较。我想我最终会得到75-100种产品。PHP - 会话变量性能(会话VAR vs雷丁文件)

所有的规格都在全球CSV文件中。每种产品都有37个功能,并且有75-100个功能。这个文件的大小约为50Kb。我也有每个产品包含相同的数据,但只有一个产品的单个文件。

我不知道会是什么,以确保良好性能的最佳方式:

  1. 负载在$ _SESSION整个文件,以使其所有可用的时间,所有页面。这意味着所有数据都会一次加载并且可以一直使用,而不会有任何额外的请求,但这会影响性能吗?

  2. 加载单独任何需要的时候,他们的文件,但是这意味着,如果有人开始比较产品(这是我们的目标),PHP将有一个数据库,并访问它来读取文件中的所有时间

  3. 存储数据每次都需要

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

感谢

回答

1

既然你要存储数据,你可能想要把它变成一个数据库;)

由于数据库引擎是非常好的,在缓存,你可能不会必须尽快担心随时性能,再加上你已经建立了自己的一些头痛的预防万一“文件”一下子得到了很多大。

如果数据库是不够的表现,你总是可以采取在MySQL -table一个MEMORY或memcached的例如。

+0

谢谢!我也想过用数据库选项,但我想了解的是,如果它是更好的,一旦整个文件加载到有一些像数据库10个查询或有? – Laurent

2

加载CSV到$ _SESSION仍然需要发生的每个请求,这听起来不是很有效。

MySQL是伟大的写了一些/读取一些解决方案,但在我看来,你的情况是更多的是写很少/读取时常局面。

使用的内存缓存像下面的选项之一保存CSV的内容可能会使得更多的意义:

+0

斯图亚特,谢谢!我确实处于一种情况,我会每个月写3-4次,并多次阅读(并在同一会话中多次阅读)。如果他们提供您提出的解决方案,我需要与托管公司联系。感谢您的建议! – Laurent