我能承受的最大缓存是多少?

时间:2011-03-26 16:49:30

标签: c# java c++ sql-server database

我有一些设计问题, 假设您有一个应用程序在运行时将数据存储到其缓存中,您认为应用程序在必须使用数据库之前应该缓存的最大数据量(以mb为单位)。

感谢。

2 个答案:

答案 0 :(得分:3)

你有多少记忆?当应用程序或系统崩溃时,您能承受多少损失?在重新启动并重新加载这些缓存时,您能承受多长时间的启动时间?通常情况下,即使使用缓存,您也需要以任何方式(或某些东西)写入数据库来持久保存数据。

如果你最终有“太多的数据”来适应内存,那么你现在正在将工作集从数据库分配到内存。如果有人更改背后的数据库,您也会遇到缓存同步问题。

各种有趣的问题。

但是,如果你有记忆,请继续使用它。

答案 1 :(得分:1)

有一个合理的机会,SQLServer在这方面比你更好,并且你应该暂时缓存。

就像威尔所说的那样,如果你愿意为崩溃时丢失的数据付费,你可能会提高响应能力,直到以后再坚持下去。任何你可以“免费”做的事情,在放弃通过立即写入数据库得到的保证的意义上,DB原则上可以为自己做。 SQL Server非常积极地使用几乎所有可用的可用内存(并且在其他应用程序需要RAM时减少其内存使用量非常有礼貌)。因此,您用于缓存的任何内存都会从SQL Server的缓存中删除。