将sql结果存储在会话中?这个可以吗?

时间:2015-04-14 14:51:18

标签: mysql session caching store

我正在一个网站上工作,我使用会话登录我的用户并存储他们的搜索结果(最多480行,18列 - 编辑:gzcompress后大约35KB的数据)

这就是我的所作所为:

$_SESSION['results_cache']= gzcompress(serialize($results),2); 

当我需要阅读它时:

$results = unserialize(gzuncompress($_SESSION['results_cache']));

我需要这样做,因为我的结果永远不会相同,它们按日期排序,并且可以高频率更新。 因此,要在不弄乱结果的情况下浏览不同的页面,我需要保存结果。

我不确定我的方式是否正常,我不确定它是如何工作的,比方说,10万用户(我很乐观:)。

如果有人能给我他们的意见。

1 个答案:

答案 0 :(得分:0)

好的,这就是我所做的。

由于我有一个可以通过ID检索产品的功能,因此我将搜索结果更改为仅返回必要的列," id"还有2个,它们是在请求中随时创建的,需要订购结果。

含义我现在有480行3列,只包含int(id => int(10),column2 => int(3),column3 => int(1))

Id当然是一个索引,所以它不应该花费很多数据库资源来检索一行,我每页只显示12行。

以这种方式做事听起来会更好吗?

我现在每页提出12个更短的请求,但是每个成员我保存了30kb的数据。