NoSQL到底是什么?是不是数据库系统只能处理{key:value}对?
据我所知,MemCache就是这样的数据库系统之一,对吗?
还有哪些流行的NoSQL数据库,它们到底在哪里有用?
谢谢,波达·西多。
发布于 2010-02-01 03:59:05
来自维基百科:
NoSQL是一种松散定义的非关系型数据存储的总称,它打破了关系型数据库和ACID保证的悠久历史。属于此术语的数据存储可能不需要固定的表模式,并且通常会避免连接操作。这个术语在2009年初首次流行起来。
这种架构的动机是高可伸缩性,以支持诸如Facebook、advertising.com等网站。
发布于 2012-07-07 04:50:47
我不同意我看到的答案,尽管NoSQL解决方案确实倾向于打破ACID规则,但并不是所有的解决方案都是从这种方法创建的。
我认为首先你应该定义什么是NoSQL解决方案,然后你可以把“不仅仅”放在前面,这将是对什么是SQL解决方案的更准确的定义。
考虑到这种方法:
SQL数据库是一种将所有可以使用结构化查询语言访问的数据存储分组的方法,这意味着它要求数据库支持那些系统常见的结构,如“表”、“列”、“行”、“关系”等。
现在,把“不仅”放在最后一句话的前面,你就会得到一个关于"NoSQL“的定义。NoSQL将创建的所有存储进行分组,以尝试解决不适合表/列/行结构甚至在SQL语句中的问题,在大多数情况下,这些数据库将不支持关系,它们正在放弃众所周知的结构,仅仅是因为问题自其构思以来发生了变化。
如果您有一个文本文件,并且您创建了一个API来存储/检索/组织此信息,那么您手中就有一个NoSQL数据库。
所有这些都意味着有几种解决方案来存储信息,而传统的NoSQL系统无法实现更好的性能、灵活性等。每个SQL提供商都试图解决不同的问题,这就是为什么你不能比较两种不同的解决方案,例如:
执行完整查询
正如你可能已经注意到的,我只讨论了文档存储,这是因为我想向你展示3种不同的文档存储实现有不同的方法,因此你应该记住NoSQL存储的黄金法则“为正确的工作使用正确的工具”。
我是djondb的创建者,甚至在尝试开始自己的NoSQL实现之前,我就已经做了很多研究,但在这个领域,概念将不断改变我们看待信息存储的方式。
发布于 2010-05-05 11:21:51
要快速掌握NoSQL系统,请参阅我写的博客文章:Visual Guide to NoSQL Systems。本质上,NoSQL系统牺牲了一致性或可用性,以支持对网络分区的容错。
https://stackoverflow.com/questions/2173082
复制相似问题