我正在开发一个需要提供大量数据的项目。
为此我们正在寻找一个数据存储来保存和获取大量数据。数据库很简单,优惠券有一个对象,交易有一对多的关系。一张优惠券有10到100个交易。 有时系统可能会在短时间内生成数千个凭证,系统也可能写入或删除数千个交易。 如果凭证有效(或简单的搜索请求),应用程序快速返回非常重要。
我看过几个博客,为此找到最好的数据库,并在候选名单上
我最喜欢的是弹性搜索,但我发现有几个博客说ES不够可靠,无法用作主数据存储。 我还读了一些博客,说mongodb在集群中运行有问题。 你有Cassandra这样的工作经验吗?或者你更喜欢任何其他数据库?
答案 0 :(得分:2)
我在MongoDB上有一些经验,但我会对此不了解。
当你说你想要一个快速的数据库时,游戏中会有很多因素。你必须考虑索引,垂直或水平扩展,关系或nosql,写性能与阅读性能,如果你选择其中任何一个应该考虑阅读偏好,平衡,网络......主题从数据库到硬件
我建议你去找一个你知道的数据库,并且你可以很好地扩展,管理和调整。
根据我的个人经验,我在群集上运行MongoDB没有问题(分片),可能是由于管理不善或计划不好造成的问题,这就是为什么我建议你去找一个你熟悉的数据库。
答案 1 :(得分:1)
在设计需要高性能的庞大数据库时,选择数据库是最不重要的。可以使大多数Nosql和Relational数据库有效地运行此类应用程序。硬件至关重要,数据库的实际设计和索引是至关重要的,您运行的查询类型需要具有高性能。
如果我要开展一个需要具有高性能的大型数据库的项目,那么第一个也是最关键的事情就是聘请一位已经使用过这些类型系统多年的数据库专家。这不是应用程序开发人员应该做的事情。这对于初学者甚至是像我这样只使用中型数据库的人来说不是一项工作,尽管已有20多年的历史。你得到你所付出的。在这种情况下,您需要在设计阶段支付真正的专业知识,因为数据库设计错误一旦有数据就难以修复。如果你不想要一个永久的雇员,雇用一个承包商,但雇用专业知识。