我放的东西有很多,也很杂,用session合适么?如果数据用完后unset()是不是可以提高点性能?比如我把最贵的前20个汽车价格放到session,在把最便宜的后20个巧克力价格也放到session里
再把北美洲最近喷发的10个火山还放到session里,都放完了,页面header(XXX)重定向到aaa.php,然后aaa.php从session里把这些一个一个取出来显示,这样合适么?一般是这么应用session么?(通常我理解session只是存放用户信息),对性能影响怎么样?unset()session里的数据会好些吧?对于这样的情况还有没别的办法?

解决方案 »

  1.   

    我觉得可以这样考虑优先1、客户端cookie
    2、服务器缓存(文件形式)
    3、数据库
    4、session最差
      

  2.   

    看来还是session比较便捷归纳一下问题的本质就是,如果有一个非常大的页面,有十几种数据,这些数据通常是怎么取到的?1。直接从数据库读数据到页面(好象现在很少有这么写代码的,这意味着一个页面要包含十几条连接)2。从数据库读数据,然后把数据放到一个地方,页面在从这个地方取(好象一个池),问题是这个地方是那里最合适?cookie适合少量数据,文件形式不适合做池(也许可以缓存整个生成页面),数据库--已经是从这里取出的了,最后只有session比较合适,其实感觉$GLOBAL全局变量是最好的,只是$GLOBAL好象无法跨脚本访问,一旦页面跳转就访问不到数据了暂且用session做数据池了,不知道有没更好的
      

  3.   

    a,b.php都包含const.php,里面存放$GLOBAL的值,可以吗?
      

  4.   

    数据怎么取到的?好像都从数据库取啊,第一次动态查询,并生成缓存文件(将取得的数据保存数组或者xml的形式),以后查询如果在缓存更新时间内就查询缓存,缓存过期就重新生成。这样即使别人查询也可以利用。session 作数据池感觉和cookie差不多,虽然方便,可是对服务器压力很大,而且限制也挺多的,只能针对特定用户使用,重开浏览就就要重新生成,利用率很低。不知道你具体需求是什么?取出来就行么?你举的第一个例子 我感觉 samrty discuz phpwind 什么的缓存功能都能实现。研究他们缓存代码就可以了