我正试图围绕像CouchDB和Cassandra这样的Key-Value商店.我理解为什么它们很有用,但就它们如何替换像MySql这样的RDBMS而言,我并不理解它.
让我们说这是我需要存储的内容:
{123456: {'model' : 'Ford'
'color': 'blue'
'MPG': 23}}
Run Code Online (Sandbox Code Playgroud)
然后我需要找到所有蓝色的汽车.
Key-Value存储如何使用值查询键?我读了一些可以使用map-reduce的地方但是看了几个项目的来源我找不到一个例子.
如果我问的是正确的问题,请告诉我.
实质上,当您使用键值存储时,您正在使用关系数据库内部具有的相同组件构建数据库.这样做的原因是为了在缩放和性能方面拥有更多的控制和灵活性,或者只是为了直截了当.
在这种情况下,您需要将表行和索引的等效项存储为两个单独的东西.因此,如果要对颜色进行索引,则需要存储
{'blue': {123456}}
Run Code Online (Sandbox Code Playgroud)
相当于一个索引表.
当然,一些键值存储为您提供索引和搜索机制,因此没有适合所有的一般规则.