【问题标题】:What's the maximum I can afford to cache?我可以缓存的最大值是多少?
【发布时间】:2011-03-26 16:49:30
【问题描述】:

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

谢谢。

【问题讨论】:

  • 如果你有钱,你还可以研究内存数据库解决方案。
  • 顺便说一句:您可以用 1 TB 的内存以约 55,000 英镑的价格购买现成的服务器。尝试缓存更多内容可以通过多个服务器完成,即分布式缓存。您可以以超过 1000 万美元的价格缓存超过 100 TB。 ;)

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


【解决方案1】:

你有多少内存?当应用程序或系统崩溃时,您能承受多少损失?当您重新启动并且必须重新加载这些缓存时,您能承受多长时间的启动时间?通常,即使使用缓存,您也需要以任何方式(或某种方式)写入数据库以持久化数据。

如果您最终有“太多数据”无法放入内存,那么您现在正在将工作集从数据库分页到内存。如果有人在您背后更改数据库,您也会遇到缓存同步问题。

各种有趣的问题。

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

【讨论】:

    【解决方案2】:

    很有可能 SQLServer 在这方面比您做得更好,您应该几乎不缓存任何内容。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 2021-10-28
      • 2011-12-19
      • 1970-01-01
      相关资源
      最近更新 更多