最近我遇到了一个概念,NoSQL
据我所知,它适用于处理大量数据。
我的问题是,使用的限制是什么NoSQL
变得值得?是否仅适用于处理真正大量数据的公司,例如 Google、Facebook 等,或者即使数据量较小,也值得从 SQL 数据库切换到它。
最近我遇到了一个概念,NoSQL
据我所知,它适用于处理大量数据。
我的问题是,使用的限制是什么NoSQL
变得值得?是否仅适用于处理真正大量数据的公司,例如 Google、Facebook 等,或者即使数据量较小,也值得从 SQL 数据库切换到它。
我想知道您所说的“NoSQL 概念”是什么意思,因为它是不同数据库技术的广泛领域的总称。它们唯一的共同点是它们之间的区别:它们“不是(唯一的)SQL”。它们有截然不同的理念、用例和目标群体。
只是为了给你一个概述,这里有一些 NoSQL 数据库的大派系。
有基于文档的数据库,如 MongoDB 或 CouchDB。它们的优点是它们不需要一致的数据结构。当您的需求和数据库布局不断变化时,或者当您处理属于一起但看起来仍然非常不同的数据集时,它们很有用。当您有很多表,其中包含两个名为“key”和“value”的列,那么这些可能值得研究。
有像 Neo4j 或 GiraffeDB 这样的图形数据库。他们的重点是通过数据与其他数据的关系来定义数据。当您有很多带有主键的表时,它们是另外两个表的主键(可能还有一些描述它们之间关系的数据),那么这些可能适合您。
然后你就有了简单的键值存储,比如 MemcacheDB、Cassandra 或 Google 的 BigTable。它们非常简单,但这使它们快速且易于使用。如果您不需要存储过程、约束、触发器和所有这些高级数据库功能,而您只想快速存储和检索数据,那么这些就是您的理想之选。
这些只是新数据库世界的几个方面。
但是仍然有一个领域是关系数据库擅长的,那就是遵循 ACID 原则。大多数 NoSQL 数据库并不能完全保证所有这四个:
(* 公平地说,上面列出的大多数数据库确实非常耐用,尤其是那些易于设置为冗余故障转移集群的数据库。