最近我遇到了NoSQL的概念,据我所知,它适用于处理海量数据。
我的问题是,我们使用NoSQL变得值得的限制是什么?它只适用于处理大量数据的公司,如Google、Facebook等,或者即使数据量较小,也值得从SQL数据库切换到它。
发布于 2012-09-12 03:35:26
我想知道您所说的“NoSQL概念”是什么意思,因为它是不同数据库技术领域的总称。它们唯一的共同点就是它们彼此之间的区别:它们都是“不(唯一)的”SQL。它们有着截然不同的理念、用例和目标群体。
只是为了给您一个概述,这里是NoSQL数据库的几个大派别。
有像MongoDB或CouchDB这样的基于文档的数据库。它们的优点是不需要一致的数据结构。当您的需求和数据库布局不断变化时,或者当您正在处理属于同一个数据集但看起来仍然非常不同的数据集时,它们非常有用。如果您有很多表,其中有两列,分别称为"key“和"value",那么这些表可能值得一看。
有像Neo4j或GiraffeDB这样的图形数据库。他们的重点是通过数据与其他数据的关系来定义数据。当您有许多具有主键的表时,这些主键是另外两个表的主键(可能还有一些描述它们之间关系的数据),那么这些数据可能会对您有所帮助。
然后是简单的键值存储,比如MemcacheDB、Cassandra或谷歌的BigTable。它们非常简单,但这使得它们更快、更容易使用。当您不需要存储过程、约束、触发器和所有这些高级数据库功能,而您只想要快速存储和检索数据时,那么这些就是为您准备的。
这些只是新数据库世界的几个方面。
但是仍然有一个领域是关系数据库的佼佼者,那就是遵循ACID原则的时候。大多数NoSQL数据库并不能完全保证这四个方面:
安全的事务原子事务(一起处理的命令链,n阶和all-or-none)
(*公平地说,上面列出的大多数数据库确实非常持久,特别是那些很容易设置为冗余故障转移群集的数据库。
https://stackoverflow.com/questions/12372441
复制相似问题