我有一个场景,我需要存储非结构化数据,但我的其余数据是结构化的和相关的。非结构化数据类型的示例如下所述:
User Type 1:
How do you blah blah : 5 fields
User Type 2 :
How do you blah blah : 3 fields
User Type 3 :
How do you blah blah : 7 fields
所有 3 种类型都被问到相同的问题“你是如何等等等等”,但每个用户类型都使用不同数量的字段来回答它。并且可以有很多不同的用户类型。
对于关系数据,我使用的是 MySQL,但我对如何存储这些非结构化数据有点困惑:
- 序列化为 JSON 并存储在 MySQL 中
- 使用 NoSQL
我的要求是高读取、平均更新、平均插入和无删除。无需加入。我需要保证写入和高可用性。如果我要选择 NoSQL,根据 CAP 定理,它将是 AP 类型。我不会很快达到数百万条记录。
我还计划将来为这些数据提供文本搜索,但它不需要是实时搜索,所以我总是可以定期使用Lucene索引数据。但当然,基于文档的 NoSQL实现确实提供了开箱即用的功能。但我在一些地方读过人们建议不要在 MySQL 中存储 JSON 数据。但是添加 NoSQL 层可能是矫枉过正。
我该怎么办?如果您建议我选择 NoSQL DB,我应该选择哪一个?
编辑: 为了澄清,我不需要从我存储的数据中查询特定字段。如果我需要数据,那么我将需要整个数据,而不是特定字段。我确实需要全文搜索,我也可以使用 Lucene 在 MySQL 上完成。