mysql - 无模式财务数据和 NoSQL?

标签 mysql mongodb financial mariadb schemaless

我们有一个可以处理无模式财务数据的应用程序。更准确地说,shemaless 数据是关于订单的信息,其中的字段由商家自定义。一致性和持久性很重要。

由于我们的数据报告非常动态,因此非常困难。每条记录可能略有不同,也可能完全不同。如果我们继续使用关系数据库,看来我们唯一的选择是将“文档”序列化为 blob。报告必须单独完成,可能通过将数据复制到由用户定义的报告定义的公共(public)结构中(每个“报告”都有一个自定义表格)。

另一种选择是面向文档的 NoSQL 数据库,例如 MongoDB。在做了一些研究之后,似乎大多数人不会信任 NoSQL 数据库的财务数据,因为它依赖于 BASE。而不是 ACID .

我似乎发现自己处于两个完全不同的用例中间。我的数据非常适合面向文档的数据库 (MongoDB),但我需要 ACID 数据库的可靠性。同时,复杂的用户定义报告也是必不可少的。

所以我似乎有三个选择:

  1. 使用两个 MySQL 数据库:一个用于存储数据(blob),另一个用于用户定义报告(大量表)。
  2. 使用 MongoDB,它支持大型数据库,但具有全局写锁并且“最终一致”。
  3. 使用 MySQL 存储数据 (blob),然后将其复制到 MongoDB 以进行报告。鉴于唯一的索引可能是 MercerID,它的效果如何?

那么,这三个中的哪一个是我最好的选择(灵 active 和耐用性最高)?是否有其他选项我没有考虑过,因为我知道我无法更改数据的动态程度?有人在生产中使用 MongoDB 进行报告吗?

(对于我们的 RDMS,我们使用 MySQL。考虑切换到 MariaDB。选择的编程语言是 PHP。考虑使用 Sphinx 进行全文搜索,例如搜索某人的姓名。)

最佳答案

只有几点:

只有从辅助节点读取,MongoDB 才会最终保持一致。否则,它是一致的。

如果您需要多对象 ACID 事务,那么 MongoDB 将无法工作。如果您需要原子性、一致性和持久性,那么如果您启用日记功能并明智地使用 write-concern,您就可以获得 MongoDB。

关于mysql - 无模式财务数据和 NoSQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8247666/

相关文章:

javascript - "Uncaught ReferenceError: Template is not defined"(路由器、Meteor、Mongo 相同)

javascript - javascript中的简单金融利率函数

GNUPLOT 绘制 5 天的财务周

java - QuickFIXJ 登录问题

mysql - 2273 毫秒插入 7679 条记录,这是快还是慢?

MYSQL - 连接2个表 - 按时间排序

mysql - 具有跨越多行的 AND 规则的 SQL 过滤器

php - MySql 中字段的 COUNT 或 SUM

mysql - 如何在 MongoDB 中实现自动递增的主 ID?

mongodb - 没有 root 无法将 mongod 作为服务运行