InProc会话或保存到数据库(使用EF4.1)

本文关键字:使用 EF4 数据库 会话 保存 InProc | 更新日期: 2023-09-27 17:59:54

在重建网站时,我正在重新思考网站的各个方面。

我目前的网站所做的一件事是通过购买过程的各种页面请求将购物车存储在会话(InProc)中。

我正在考虑不再使用会话状态,而是在必要时使用实体框架将购物车保存到数据库中。

以这种方式存储购物车会对性能产生巨大影响吗?

InProc会话或保存到数据库(使用EF4.1)

使用数据库存储购物车可能不会注意到任何性能差异。优点是,如果你的网站起飞,每天点击10000次,你的应用程序将能够扩展:)

在数据库中存储数据是否会影响性能?对你的用户可能注意到了吗?可能不会。您的应用程序进行的这些和所有其他小数据调用对您的用户来说会有显著的不同吗?肯定像大多数事情一样,你需要平衡需求、利益和资源。

我首先想问你为什么要把你的购物车存储在数据库中。脑海中浮现的原因包括web场场景和w3wp重置或失败时的持久性。

对于web场场景,有几种解决方案:进程外会话模式、数据库会话模式,或者使用进程内模式的粘性会话。有关详细信息,请查看ASP.NET会话模式。

如果你想做的只是持久化你的购物车或保护它免受内存波动的影响,你可以将你的会话状态移动到数据库中,作为一个快速实现的解决方案,但你也可以使用显式数据库表。会话的大小、购物车数据的大小、网络和硬件性能以及系统的许多其他方面都可能影响您的结果。所以衡量,改变,衡量,比较。