分片是随机分布在 MongoDB 中的机器上还是按顺序分布?
例如,如果我有一个跨两台机器分片的 MongoDB 集群,并且我的分片键是一个人的名字,那么以“am”开头的名字会出现在第一台机器(或副本集)上,并且以“nz”开头的名字会出现第二台机器?
非常感谢!
想建立一个跨多台机器分片的键值存储。
我们目前正在使用 MongoDB,是否有理由不将 MongoDB 用于此目的?
我们也使用 Redis,但是对于这个用例,我们想使用硬盘驱动器并且 Redis 仅在 RAM 中。
无法O (log n)
及时索引和执行查询。
该查询包括一个INNER JOIN
、一个ORDER BY
和一个相等运算。如果我正确理解了数据库的规律,O (log n)
如果一个非等式运算符没有在多于一列上使用,则可以及时(或大约)索引和执行查询。在这种情况下,我相信INNER JOIN
确实算作相等运算符,而非相等运算符将是ORDER BY
查询的一部分。该表有超过 10,000,000 行,需要每秒处理多次读取和写入。
使用 PostgreSQL。这就是桌子的样子。如您所见,“Names”列是一个列表属性,它是与之相反的列INNER JOIN
:
Age Names Date
34 ['carla', 'john', 'sam'] 3/13/2011
26 ['json', 'cindy', 'joel'] 3/13/2011
72 ['beth', 'amber', 'susie'] 3/13/2011
14 ['john', 'jim', 'debie'] 3/13/2011
Run Code Online (Sandbox Code Playgroud)
这是我们尝试执行的查询:
SELECT * FROM the_table WHERE Age==26 AND Names=='john' ORDER BY Date
Run Code Online (Sandbox Code Playgroud)
我的背景来自使用 App Engine 的 Big Table,所以我在这里使用了相等运算符来指示它'john'
应该是Names
列中的名称之一。这将是 GAE 大表中可接受的查询,它将O (log N)
及时执行,因为所有大表查询都需要执行。我假设在 …