从mysql迁移到Couchbase。这是个好主意吗?

时间:2019-03-12 04:35:27

标签: mysql erlang couchbase

当前,我们正在使用MySQL数据库。数据库大小约为45 GB,并且还在不断增长。

  1. 每秒大约有4000个数据被写入数据库。
  2. 同时,几个用户从数据库中获取数据。这意味着读写操作将在数据库中连续进行。

我们正在考虑使用Couchbase迁移到NoSQL技术。我不是数据库专家,在我进一步思考之前我几乎没有疑问

  1. 当数据库太大而每秒读取和写入太多时,NoSQL技术在速度,性能和灵活性方面是否可行?
  2. 谁不应该使用Couchbase?
  3. 我们还使用Erlang,它每秒可将数千条记录写入数据库。 Erlang是否支持NoSQL Couchbase?

谢谢

3 个答案:

答案 0 :(得分:3)

  1. Nosql数据库的设计意图是通过带来水平可伸缩性来回答您的第一个问题,该水平可伸缩性使您可以轻松,经济高效地扩展数据库集群以管理越来越多的数据。这种水平可伸缩性并不是免费的,因为它通常会影响数据的可用性或数据的一致性,而这部分可以决定您选择正确解决方案的原因。

  2. 如何选择正确的nosql数据库将取决于您的应用程序约束。人们通常会在CAP三角形上找到不同的解决方案(一致性,可用性,分区容限)。您可以在此处找到参考:

https://www.dataversity.net/choose-right-nosql-database-application/#

您可以在其中看到,沙发床带来了可用性和分区容限,但在一致性方面却不是很好,这不同于经典的RDBMS,后者主要带来一致性和可用性功能。

因此,您的选择将取决于该条件以及nosql数据库的类型。 Couchbase是面向文档的,您还有其他选择(键值,列和图)。根据您的情况,文档或列可能更适合。

  1. 最后选择的条件是查询API和支持的语言。这些非常重要,因为如果nosql db查询语言无法提供所有必需的内容,则移植现有查询可能会非常困难。另外,例如,如果没有用于长沙发的全功能erlang客户端,则可以将其链接到db客户端本身。

希望这会给您带来一些见识。

答案 1 :(得分:2)

选择将SQL vs NoSQL vs Graph ..这是第一步。根据数据之间的关系如何组织数据。如果需要对象之间的关系,请使用SQL / Graph DB,如果只需要一个对象,请使用NoSQL。

如果您选择使用NoSQL,则有很多选择。使用Erlang,我使用了CouchDB和Elastic Search,但是您可以选择MangoDB,Raik或其他东西。需要考虑的最重要的事情是如何访问数据,清除/删除大量数据的便捷性(CouchDB是不行的事情),是否需要ACID或最终一致性...

有时候我使用MySQL并将json存储在一个字段中,它比必须将所有内容存储在字段中或使用两个数据库(一个用于相关数据,另一个用于json)要好得多。

Erlang将与任何数据库一起工作,只需弄清楚您的要求是什么。

答案 2 :(得分:-2)

对于Erlang来说,最好的noSQL数据库是Riak-肯定是!但是,取决于数据的类型,如上所述。