2015-04-04 101 views
0

我有一个网站,当用户没有登录时速度超快,但SESSIONS开始在登录后开始使用时显着减慢。尽可能立即但不起作用。PHP:导致缓慢的SESSIONS

会话设置为在/ tmp目录

人对如何改善任何想法的文件?我为每个用户使用8个$ _SESSION。会降低,提高性能?

编辑:澄清,我设置8个不同的$ _SESSION变量,不开放8个会话。

编辑2:将我的SESSION数据合并到一个数组中。没提升。数据是630个字符。使它变小也不会改善它。

+0

你必须和你可以使用一个会话来存储所有的信息。无需为单个用户进行8个会话。 – 2015-04-04 11:17:39

+1

'$ _SESSION []'中的条目数量并不重要(如果它们在合理的限制内)。会话数据在'session_start()'上只读取一次,并在脚本结束时(或'session_write_close()')只写一次。这需要很长时间的一些原因可能是一个非常缓慢的文件系统挂载在'/ tmp'(NFS,也许?),你存储在$ _SESSION'(非常大的数组?)中的非常多的信息。我宁愿调查数据库查询(代码通常对登录用户运行的查询次数多于匿名用户)。 – axiac 2015-04-04 11:59:44

回答

0

我不知道在会话中保存了哪些数据,但听起来有点像在整个对象中保存大量大数据,例如整个对象。会话是从您的硬盘写入并读取的。当你有很多数据时,加载它们需要很多时间。

要检查您的会话是否有很多数据,您可以使用var_dump($_SESSION);来检查SESSION中的数据。

接下来就是您应该将数据放在像SSD这样的快速设备上,例如不在NFS文件系统或其他任何设备上。

正常情况下,会话系统足够快。

+0

var_dump($ _ SESSION);长度为630个字符,显示我的SESSION阵列数据。 – Everdred 2015-04-04 12:24:15

+0

如果你在会话中只写了'test',那么你是否遇到同样的性能问题? – Stony 2015-04-04 12:25:10

+0

与“测试”相同的问题。 – Everdred 2015-04-04 12:32:12