我想知道NoSQL是否适合这种情况:
输入的是来自多个来源的小时库存数据(sku、数量、价格和一些更具体的数据)。旧的版本只会掉下来。所以我们不会超过1百万。数据集在不久的将来,不会有任何商业智能查询,如在数据仓库。但是也会出现聚合,至少对于一组物品的最低价格,如果一个组的最低价格的文章卖光了,就必须更新它。除了这些频繁的大写之外,一篇文章的数量也会减少一次,这在任何时候都可能发生。
数据库将是服务的一部分,该服务需要通过REST快速响应请求。所以需要某种缓存。不需要严格的一致性,但要持久。
进一步的愿望清单:
MongoDB和它的聚合框架看起来很有希望。你能想到备选词吗?(我不坚持NoSQL!)
发布于 2012-03-29 03:05:46
我从Redis开始,原因如下:
MongoDB一开始可以工作,其他主要的NoSQL也会工作,但为什么呢?
我将使用Redis,如果您稍后决定需要“更多”,我将首先查看"Redis + SQL (Postgre/MySQL/etc.)“,它将为您提供两个世界的=>”缓存/速度“和”聚合能力“,以防您的聚合需要超出Min/Max/Incr/Decr。
无论谁告诉你PostgreSQL“写得不够快”,他都不知道。
无论谁告诉你MySQL“不够可伸缩”,都不知道(例如Facebook运行在MySQL上)。
=>告诉你MongoDB有“复制集和切分”并不是很好,因为从文档和炒作来看,复制集和切分看起来很性感。一旦您需要reshard / reorg副本集,您就会知道错误的碎片键选择和神奇的块移动的代价..。
=> Redis FTW!
发布于 2012-03-24 13:55:13
在我看来,MongoDB是最好的选择。
它不仅具有聚合特性,而且还具有用于统计计算的映射/减少查询的可能性。它可以通过replica sets和sharding进行缩放,具有增量的原子更新(递减只是负增量)。
替代办法:
CouchDB -阅读速度不够快Redis -是键/值db。您需要在应用程序级别上对文章逻辑进行编程。MySQL -可伸缩性不够PostgreSQL --如果使用pgbouncer进行缩放,但编写的速度不够快,这可能是很好的选择。https://stackoverflow.com/questions/9851101
复制相似问题