我目前有一个应用程序,每天都会有超过 20,000 名用户点击,他们大多查看一个数据表。该数据表填充了大约 20 行,但是是从数据库中的“数据表”中提取的,表中有 200,000-600,000 条信息记录。 编辑:这 20 行是“动态的”,如果用户通过文本框输入任何信息,它们就会发生变化。
我目前还保存用户数据和个人资料数据。
目前,每次显示数据表时,我都会进行大约 4 次回调,但无法将其减少到 1 次。
问题:我想知道是否真的可以每 5 秒用 200,000-600,000 行数据填充应用程序状态,并且它实际上会加速系统吗? 编辑:对用户或任何其他用户输入的动态行进行操作,内容需要经常刷新。
问题 2:我实际上可以在应用程序缓存中保存多少内容,并且仍能保持速度更快?
编辑: 由于有超过 20,000 个用户访问这 200,000 行,我需要缓存所有这些行,或者至少我认为这是最佳实践。当用户访问我的网站时,这是他们查看的主要页面之一,每次访问可能会返回 2-5 次。
编辑:用户确实看到了一组独特的 20 行,可能与用户看到的任何其他 20 行不同。这是一个非常动态的网站,几行不同的行大约每秒更新一次。
编辑:如果存储在 session 状态中,那么它只会加快人们查看页面的次数。不是整个应用程序,因为一个人只能查看该页面一次,然后离开。
最佳答案
从技术上讲,我相信你想做的事情是可能的,但我不会推荐它。在走这条路之前,您必须考虑几个因素。
你们有硬件支持吗?如果您没有用于此类配置的内存并且必须进行页面交换,那么您可能会失去将其缓存在内存中的大部分速度优势。如果您使用进程外状态服务器,则系统会产生处理序列化的开销。
您打算如何在这么多行中搜索某些内容?数据库服务器在幕后为您处理大量搜索和排序工作。他们使用一些非常复杂的算法,如果您将数据缓存在网络服务器上,您将丢失这些算法。
对于什么时候数据库中的速度比内存中的速度更快,没有真正严格的快速规则。这实际上取决于应用程序的设置方式以及数据的存储方式。
关于asp.net - 您实际可以保存多少应用程序 session 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/150739/