自定义会话:文件或数据库


Custom Sessions: file or database?

我正在为我的web应用程序设计自己的会话处理程序,在试图控制会话应该持续的时间时,PHP会话太有限了。

无论如何,我的第一个测试是这样的:一个session_id存储在mysql行上,也存储在cookie上,在同一个mysql行中,我的会话的其余部分都是vars。

在每次向服务器发出请求时,我都会进行查询,获取这些变量并将它们放在数组中,以便在运行时使用必要的变量。

昨晚我在想,是否可以在登录阶段在服务器文件上写一次vars,然后只包含该文件,而不是对每个请求进行mysql查询。

所以,我的问题是:哪个资源消耗较少?在mysql或文件上执行此操作?

我知道,我知道,关于这个问题,我已经在stackoverflow上读了几个线程,但我有一些不同于所有这些情况的东西(我希望我没有错过什么):

我需要跟踪自用户上次使用该应用程序以来的时间,因此,在每次对服务器的调用中,我不仅请求整个数据库行,还更新同一行的时间戳。

因此,在这两种情况下,我都需要根据每一个请求写信给会议。。。

仅供参考:整个应用程序在一台服务器上运行,因此使用文件时的多台服务器场景不适用。。

当它在数据库中完成时,使用起来更容易,而且我一直在数据库中使用会话,主要是为了提高可伸缩性。

你可以使用MySQL,因为它可以通过配置良好的MySQL服务器将会话存储在临时内存中,如果你可以将所有会话存储在内存中,你甚至可以使用内存表来固定它。如果你的记忆力接近极限,就很容易切换到正常的表格。

我认为MySQL在中大型网站的性能以及定制/选项方面都胜过了文件。对于较小的网站,我认为这没有多大区别,但在使用文件时,你会使用更多的硬盘。