Tag: nosql

您使用NoSQL数据存储时遇到了哪些可伸缩性问题?

NoSQL是指与关系数据库和ACID保证的历史相关的非关系数据存储。 stream行的开源NoSQL数据存储包括: Cassandra (表格,用Java编写,由思科,WebEx,Digg,Facebook,IBM,Mahalo,Rackspace,Reddit和Twitter使用) CouchDB (文档,用Erlang编写,由BBC和Engine Yard使用) Dynomite (键值,用Erlang编写,由Powerset使用) HBase (键值,用Java编写,Bing使用) Hypertable (表格,用C ++编写,百度使用) 凯 (键值,写在Erlang) MemcacheDB (键值,用C语言编写,由Reddit使用) MongoDB (文档,用C ++编写,由Electronic Arts,Github,NY Times和Sourceforge使用) Neo4j (graphics,用Java编写,由瑞典一些大学使用) Project Voldemort (由Java使用的由Java编写的键值) Redis (键值,用C语言编写,由Craigslist,Engine Yard和Github使用) Riak (键值,用Erlang编写,由Comcast和Mochi Media使用) Ringo (诺基亚使用的Erlang编写的键值) Scalaris (关键值,用Erlang编写,由OnScale使用) Terrastore (文档,用Java编写) ThruDB (文档,用C ++编写,由JunkDepot.com使用) 东京内阁/东京暴君 (密钥值,用C语言编写,由Mixi.jp(日本社交网站)使用) 我想知道您的SO读者已经使用数据存储和您使用的NoSQL数据存储解决了哪些具体问题。 问题: 您使用NoSQL数据存储来解决哪些可伸缩性问题? 您使用了哪些NoSQL数据存储? 在切换到NoSQL数据存储之前,您使用了哪个数据库? 我正在寻找第一手的经验,所以请不要回答,除非你有这个。

MongoDB不符合ACID标准是什么意思?

我不是一个数据库专家,没有正式的计算机科学背景,所以忍受着我。 我想知道如果使用不符合ACID的 MongoDB,可能会发生的真实世界的负面情况。 这适用于任何不符合ACID的数据库。 据我所知,MongoDB可以执行primefaces操作 ,但是他们并不是“支持传统的locking和复杂事务”,主要是出于性能原因。 我也明白数据库事务的重要性,以及你的数据库是在银行的例子,而且你正在更新几个需要同步的logging,你希望事务恢复到初始状态,如果有停电,所以信贷等于购买等。 但是当我谈到MongoDB的时候,那些不知道数据库实际上是如何实现的技术细节的人开始抛出像下面这样的陈述: MongoDB的速度比MySQL和Postgres快,但是有一个很小的机会,比如百万分之一,它“无法正确保存”。 这个“不能正确保存”的部分是指这样的理解:如果在写入MongoDB的瞬间有停电的可能,有一个特定logging的机会(比如说,你跟踪具有10个属性的文档中的浏览量每一个),其中一个文件只保存了5个属性…这意味着随着时间的推移,你的浏览量计数器将“略微”closures。 你永远不会知道多less,你知道他们将是99.999%正确,但不是100%。 这是因为,除非你专门做了这个mongodbprimefaces操作 ,否则操作不能保证是primefaces操作。 所以我的问题是,什么时候以及为什么MongoDB不能“正确保存”的正确解释? ACID的哪些部分是不能满足的,在什么情况下,您怎么知道您的数据的0.001%是什么时候closures的? 这不能以某种方式解决吗? 如果没有,这似乎意味着你不应该在MongoDB中存储像你的users表这样的东西,因为logging可能不会保存。 但是再一次,那1 / 1,000,000用户可能只需要“尝试再次注册”,不是吗? 我只是在寻找一个什么时候/为什么负面的事情发生在一个像MongoDB这样的ACID不兼容数据库的列表,理想的情况是如果有一个标准的解决方法(如运行后台作业来清理数据,或者只使用SQL等) 。

你如何在Mongo中查询这个? (不为空)

db.mycollection.find(HAS IMAGE URL)

NoSQL(MongoDB)vs Lucene(或Solr)作为你的数据库

随着NoSQL运动在基于文档的数据库的基础上不断发展,我最近研究了MongoDB。 我已经注意到与Lucene一样(和Solr的用户)如何将项目视为“文档”,这一点非常相似。 所以,问题是: 你为什么要使用Lucene(或Solr)上的NoSQL(MongoDB,Cassandra,CouchDB等)作为你的“数据库”? 我(而且我相信其他人)正在寻找答案的是他们的一些深入的比较。 让我们一起跳过关系数据库的讨论,因为他们服务于不同的目的。 Lucene具有强大的search和权重系统等优点。 更不要说Solr的一面(Solr即将被整合到Lucene中,耶!)。 您可以使用Lucene文档来存储ID,并像MongoDB一样访问这些文档。 把它和Solr混合起来,你就可以得到一个基于WebService的,负载平衡的解决scheme。 在讨论MongoDB的类似数据存储和可伸缩性时,甚至可以比较Velocity或MemCached之类的超级caching提供程序。 MongoDB的限制让我想起使用MemCached,但是我可以使用微软的Velocity,并且对MongoDB有更多的分组和列表收集能力(我认为)。 无法获得比在内存中caching数据更快或可伸缩的内容。 即使Lucene有一个内存提供者。 MongoDB(和其他)确实有一些优点,比如API的易用性。 新build一个文档,创build一个id,然后存储它。 完成。 好,易于。

有没有像SQLite那样简单的NoSQL数据库?

有没有像SQLite那样简单的NoSQL数据库? 我正在寻找一个轻量级的数据库来保存一个简单的桌面应用程序的一小组数据。 我仍然可以使用SQLite,但更喜欢更多的面向对象的方法,因为我的应用程序不处理太多的数据。

什么时候Redis? 什么时候到MongoDB?

我想要的不是Redis和MongoDB之间的比较。 我知道他们是不同的; 性能和API是完全不同的。 Redis非常快,但API非常“primefaces”。 MongoDB会吃更多的资源,但是这个API非常容易使用,而且我非常满意。 他们都很棒,我想尽可能地使用Redis进行部署,但是很难编写代码。 我想尽可能地在开发中使用MongoDB,但是它需要一个昂贵的机器。 那么你怎么看待这两者的使用呢? 什么时候选Redis? 何时selectMongoDB?

什么时候在MongoDB上使用CouchDB,反之亦然

我困在这两个NoSQL数据库之间。 在我的项目中,我将在数据库中创build一个数据库。 例如,我需要一个解决scheme来创builddynamic表。 所以用户可以创build列和行的表格。 我认为MongoDB或CouchDB都会对此有所帮助,但是我不确定哪一个。 我也需要高效的分页。

在MongoDB中过滤embedded式文档

我无法理解如何在MongoDB中过滤embedded式文档,并开始认为我应该使用关系关联,但在文档存储上下文中感觉不对。 坚持一个典型的博客/评论系统,我有一个blogs的集合,每个blog有很多comments 。 注释以embedded式文档的forms存储在博客文档中。 过滤我的blogs集合非常简单,但是为了过滤每个blogembedded的comments ,我不得不将它们全部加载到内存中(全部检索到一个Ruby数组),然后遍历每个评论,返回匹配一个具体的标准。 我使用点符号过滤embedded式文档的工作正在失败,并将所有子文档带回。 有没有更好的方式让MongoDB为我过滤这些东西,还是应该让我自己去关系关联? (从长远来看,所有embedded式文档的撤回和手动过滤将会过于密集)

什么是构buildFirebase数据的最佳方式?

我是firebase的新手,我想知道什么是构build数据的最好方法。 我有一个简单的例子: 我的项目上有应用程序和应用程序。 1个申请人可以有几个申请。 如何将这两个对象关联到firebase上? 它是否像关系数据库一样工作? 或者在数据devise方面需要完全不同的方法?

我可以在CouchDB中进行交易和locking吗?

我需要做交易(开始,提交或回滚),锁(select更新)。 我怎样才能在文档模型数据库中做到这一点? 编辑: 情况是这样的: 我想运行一个拍卖网站。 我想如何直接购买。 在直接采购中,我必须减less物料logging中的数量字段,但只有在数量大于零的情况下。 这就是为什么我需要锁和交易。 我不知道如何解决没有锁和/或交易。 我可以用CouchDB解决这个问题吗?