mongoDB 初识(一)
目录
1、NoSQL是什么(优点/缺点)
NoSQL数据库使用各种数据模型,如文档导向、键值、列族或图形格式,而不是像SQL数据库那样使用表格模式。这些数据库通常设计用于可扩展性、灵活性和性能,特别是在处理大量非结构化或半结构化数据时。 流行的 NoSQL 数据库包括 MongoDB、Redis、Cassandra、Couchbase 和 Neo4j。
NoSQL的优点/缺点
优点:
-
高可扩展性
-
分布式计算
-
低成本
-
架构的灵活性,半结构化数据
-
没有复杂的关系
缺点:
-
没有标准化
-
有限的查询功能(到目前为止)
-
最终一致是不直观的程序
2、NoSQL和SQL关系型数据库的对比
数据模型:
SQL型数据库:使用表格结构,采用固定的模式(schema),数据以行和列的形式存储。 NoSQL数据库:使用各种数据模型,如文档导向、键值、列族或图形格式,不一定要求固定的模式。
可扩展性:
SQL型数据库:通常垂直扩展(增加硬件资源),在处理大规模数据时可能面临性能瓶颈。 NoSQL数据库:通常水平扩展(增加节点),能够更容易地处理大规模数据,因为它们被设计为可扩展。
一致性:
SQL型数据库:通常保证ACID(原子性、一致性、隔离性、持久性)事务特性,提供强一致性。 NoSQL数据库:根据数据库类型,一致性可以是强一致性、最终一致性或柔性一致性,根据需求进行权衡。
灵活性:
SQL型数据库:固定的表结构要求数据遵循严格的模式,难以适应数据模式的变化。 NoSQL数据库:可以灵活地处理半结构化和非结构化数据,不需要严格的模式定义,因此更适应数据模式的变化。
性能:
SQL型数据库:在复杂查询和联结操作上通常表现良好,但在大规模写入和高并发读取方面可能有限制。 NoSQL数据库:在处理大量数据和高并发操作时通常表现良好,尤其是在分布式环境下。
3、基础概念(ACID、CAP、BASE)
关系型数据库遵循ACID规则
事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:
1、A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功