我拥有一个高容量的OLTP数据库,我可以自由地统治以尽可能多地改进。 这些改进已经非常有用,但我想把它提升到一个新的水平。 我发现的数据访问模式使其成为IMO在其他服务器上缓存数据的良好候选者,我很乐意听到任何人使用此类设置的经验或建议。

我们有一个数据库,每天可以将大约3GB的数据添加到表中,并且报告它的速度非常慢。 一旦放入数据,数据就不会改变,也不会插入超过一周的数据。 在过去3天内输入的行往往会在数千万行之间看到数千个插入。

我想将2周以上的数据推送到MongoDB。 然后,我可以将2周滑动窗口数据推送到Mongo,由某种缓存软件缓存,以便查询和显示这些数据,而不是始终从数据库中读取数据。 我认为这样我们仍然可以通过让数据库引擎验证所有数据来获得完全的ACID合规性,因为它没有达到数据库而具有高读取性能,然后Mongo可以在它不再是“事务”时接受它。

有人有推荐的解决方案吗? 我在看MemCached,但不太确定这是否是一个好的甚至是合理的解决方案。 谢谢!

===============>>#1 票数:2

您可以考虑的另一件事是在SQL Server 2014中使用新的内存中OLTP功能。该功能可提高OLTP工作负载的效率和扩展性。 您可能能够从现有服务器中获得更多功能,而无需考虑特定的缓存机制。

===============>>#2 票数:0 已采纳

我没有SQL Server的具体经验,但您所描述的内容似乎是MongoDB的有效用例。

请注意,虽然MongoDB无法直接处理事务,但它能够以原子方式处理某些操作(例如,请参阅findAndModify)。 此外,启用日记功能后,您不应该有任何理由担心持久性。 MongoDB是一个可靠的数据存储,不会丢失或损坏您的数据。

如果运行禁用日记功能的第二个部署,MongoDB本身也可以充当高性能缓存。 在这种情况下,写入将在内存中进行,并且每60秒仅保留到磁盘(除非另行配置)。 这将提供与memcache相当的性能,它只是在内存中,同时允许您保持堆栈更简单。

希望这可以帮助!

  ask by Ali Razeghi translate from so

未解决问题?本站智能推荐: