用于存储大量数据的PHP会话?

用于存储大量数据的PHP会话?,php,session,Php,Session,我正在开发一个媒体书签网站,并且正在寻找一种方法来记住用户是否已经为某个项目添加了书签(无需在每次加载页面时都去DB进行检查) 我以前没有使用过PHP会话,但我认为它们可以做到这一点 在用户登录时进行初始DB调用,获取用户已添加书签的所有项目,并将所有项目ID的数组保存到用户会话中,这样做有意义吗 然后,当加载一个页面时,对于页面上的100个项目中的每一个,它都会检查该项目的ID是否在会话数组中(这样我们就知道是显示“书签”按钮还是显示他们已经将其添加书签的指示符) 只是想确保这是一个正确的策略

我正在开发一个媒体书签网站,并且正在寻找一种方法来记住用户是否已经为某个项目添加了书签(无需在每次加载页面时都去DB进行检查)

我以前没有使用过PHP会话,但我认为它们可以做到这一点

在用户登录时进行初始DB调用,获取用户已添加书签的所有项目,并将所有项目ID的数组保存到用户会话中,这样做有意义吗

然后,当加载一个页面时,对于页面上的100个项目中的每一个,它都会检查该项目的ID是否在会话数组中(这样我们就知道是显示“书签”按钮还是显示他们已经将其添加书签的指示符)


只是想确保这是一个正确的策略,或者是否有更好的方法。即使阵列中有10000个ID,这也可以吗?

我建议您查看数据库,不要将此数据存储到会话中。如果你在一个高负载的站点上有很多信息,你会很快阻塞内存。
只要做一些缓存,就可以了。

我建议您查看数据库,不要将这些数据存储到会话中。如果你在一个高负载的站点上有很多信息,你会很快阻塞内存。
只需进行一些缓存,就可以了。

请记住,提高会话管理健壮性和速度的常见PHP策略是将会话数据存储在数据库中。您似乎正朝着相反的方向前进。

请记住,提高会话管理健壮性和速度的常见PHP策略是将会话数据存储在数据库中。您似乎正朝着相反的方向前进。

好吧,如果您想做一些可笑的事情,您可以使用Javascript将所有数据存储在客户端的浏览器上,存储在某个能够经受页面更改的对象中。我不推荐它,因为它给您带来了很多麻烦,但我想,有了所有奇怪的AJAX-y解决方案,它可能会引起您的兴趣:-)

好吧,如果您想做一些可笑的事情,您可以使用Javascript将所有数据存储在客户端的浏览器上,保存在某个能够经受页面更改的对象中。我不推荐它,因为它给你带来了很多麻烦,但我发现所有奇怪的AJAX-y解决方案,它可能很有趣:-)

您还可以查看Memcached extension-它使用服务器内存作为数据存储。

您还可以查看Memcached extension-它使用服务器内存作为数据存储。

在会话中存储数据也意味着数据将在大约15分钟后丢失(默认情况下,但可能会有所不同)


我建议您将数据保存到数据库,然后使用一些缓存进行后续读取(如@Mark Tyler所说的memcache)。

在会话中存储数据也意味着数据将在大约15分钟后丢失(默认情况下,但可能会有所不同)


我想您应该将数据保存到数据库中,然后使用一些缓存进行后续读取(如@Mark Tyler所说的memcache)。

我建议使用ADODB for php。它内置了查询缓存和sql注入保护等功能。您可以在

上阅读有关缓存功能的更多信息。我建议您使用ADODB for php。它内置了查询缓存和sql注入保护等功能。您可以在

上阅读有关缓存功能的更多信息。这里的最佳解决方案是在数据库中设置一个收藏夹/书签表,使其包含用户id和项目id,并将联接添加到项目检索逻辑中


然后,您不需要运行额外的SQL命令,也不需要在会话中存储任何内容,只需检查这些收藏列是否存在。

这里最好的解决方案是在数据库中有一个收藏/书签表,让它包含用户id和项目id,并向项目检索逻辑添加一个联接


然后,您不需要运行额外的SQL命令,也不需要在会话中存储任何内容,只需检查这些常用列是否存在。

不要高估每个页面加载一次数据库的糟糕程度。你会发现很多PHP应用程序都能实现你所说的。许多应用程序从数据库中提取页面的各个部分,获取用户数据、论坛数据、新闻等,因此单个页面加载可以运行约30个查询

在cookie中存储唯一的ID,并在数据库中以智能方式存储要存储的会话信息


你可能想得太远了。这里的一个好方法是以合理的方式构建所需的功能(即服务器端),监控系统资源(数据库负载、web服务器负载),然后如果发现问题,则重构以解决问题。

不要高估每页面负载一次对数据库的影响。你会发现很多PHP应用程序都能实现你所说的。许多应用程序从数据库中提取页面的各个部分,获取用户数据、论坛数据、新闻等,因此单个页面加载可以运行约30个查询

在cookie中存储唯一的ID,并在数据库中以智能方式存储要存储的会话信息


你可能想得太远了。这里的一个好方法是以合理的方式构建所需的功能(即服务器端),监控系统资源(数据库负载、web服务器负载),然后如果发现问题,重构以解决问题。

您是要在每页上显示一个带有书签链接的“媒体”,还是要在每页上显示数百个“媒体”每个页面上都会有50-100个书签项目,每个页面上都会有一个书签链接。您是要在带有书签链接的页面上显示一个“媒体”,还是要在带有数百个“媒体”的页面上显示一个书签链接?每个页面上都会有50-100个书签项目,每一个旁边都有一个书签链接。好的,你说得有道理。所以你认为