我们有key-multipleValues的数据.每个密钥可以有大约500个值(每个值大约为200-300个字符),这些密钥的数量将大约为1000万.主要操作是检查给定键的值.
我一直在使用mysql,我有两个选项:每个键值一行,每个键一行,文本字段中包含所有值.但这些对我来说似乎并不高效,因为第一个模型有很多行,冗余和第二个模型文本字段将变得非常大.
我正在考虑使用nosql数据库为此目的,我以前使用mongodb,我不认为它适合我目前的情况.基于keyvalue或基于列系列的nosql db会更好.它不需要分发.使用riak,redis,cassandra等的人分享你的想法.
谢谢
解决方法
根据您的描述,似乎某种键值存储对您比较关系数据库会更好.
数据本身似乎是非关系型的,为什么存储在关系存储中?使用像Cassandra这样的东西似乎是有效的.
我认为这个要存储的数据的典型数据结构将是一个列族,Key为Row-key,Columns为value.
MyDATA: (ColumnFamily) RowKey=>Key Column1=>val1 Column2=>val2 ... ... ColumnN=valN
数据看起来像(JSON表示法):
MyDATA (CF){ [ {key1:[{val1-1:'',timestamp},{val1-2:'',..,{val1-500:'',timestamp}]},{key2:[{val2-1:'',{val2-2:'',{val2-500:'',... ... ] }
希望这会有所帮助.