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

时间:2012-08-30 19:54:03

标签: php mysql

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

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

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

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

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

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

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

所以,在这两种情况下,我都需要在每次请求时写入会话......

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

1 个答案:

答案 0 :(得分:0)

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

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

我认为MySQL赢得了大中型站点的性能文件以及定制/选项的性能。对于较小的网站,我认为它没有那么大的差别,但是在使用文件时你会使用更多的硬盘。