NoSQL、ElasticSearch 甚至老式关系数据库?

NoSQL, ElasticSearch or even old school relational database?

我们有一个在 DB2 数据库中存储事件记录的应用程序。我们有用户根据事件发生的时间来查询这些事件,并且可以选择一些 id 作为搜索条件。

目前这个概念可行,但查询速度不是很快。将来传入的事件将会增加。 所以我们目前正在考虑我们的解决方案,如果关系数据库是我们用例的正确解决方案,或者 NoSQL 解决方案是否可以更好地满足我们的要求。

在对不同的 NoSQL 解决方案(基于列、键值等)进行一些研究后,我们不知道其中一个是否适合。我们也看到了 ElasticSearch 作为替代方案,但不知道 ElasticSearch 使用哪种存储。

那么,您是否有任何想法可以做什么,或者我们的研究应该朝哪个方向发展,以适应这个用例。

此致, 马纳纳纳

我只能给你我的经验。几个月前,我们遇到了类似的问题。我们使用的是 mssql 数据库,并且正在考虑更改为 nosql 解决方案。

我调查了很多数据库,最终决定使用弹性搜索,因为它具有惊人的搜索速度和强大的功能。

设置超级简单。甚至设置集群也轻而易举。它在后台使用 lucene 进行搜索。

自从我们进行转换以来,我们没有遇到任何重大问题。

根据您的说法,您是否试图调整现有数据库尚不清楚。如果您没有这样做,调整现有解决方案通常比将所有数据移动到新平台(仍然需要调整)更有效(在时间和精力方面)。只有在清楚地用尽所有调整选项后,您才应该考虑迁移。

"Queries are not very fast" 似乎含糊不清。优化现有解决方案可能是成本最低、速度最快的选择,即使这意味着对现有数据库进行一些更改。调查查询缓慢的原因。 table 范围分区是每天、每周还是其他时间间隔,如果不是,那为什么不呢? table 是否使用行压缩?最常见的谓词是否有 suitable 索引,它们是否正在使用?