赞
踩
1.本文翻译自: NoSQL Vs SQL Databases | MongoDB
2.NoSQL指的是不止sql(not only sql);NoSQL数据库是2000年代末开发的,重点是扩展,快速查询,允许频繁变更,让编程更简单;
3.关系型数据库是1970年代开发的,重点的是减少数据重复,因为存储成本高于开发者时间。SQL数据库往往具有严格,复杂的表格模式,通常要求高成本的垂直扩展。(如迁移到一台性能更好的服务器)
SQL 与 NOSQL 间的区别 | ||
区别条目 | SQL数据库 | NoSQL数据库 |
数据存储模型 | 固定行列的表格 | document:json文档; key-value:键值对; wide-column:带有行与动态列的表格; 图:节点与边 |
发展历史 | 1970年代开始开发,关注的是减少数据重复 | 2000年代末开始开发,关注的是扩展,允许快速变更 |
例子 | oracle,mysql | document:MongoDB 和 CouchDB; key-value:redis 和 DynamoDB; wide-column:Cassandra 和 HBase; graph:Neo4j 和 Amazon Neptune |
主要用途 | 通用 | document:通用; key-value:大量数据的简单查询; wide-column:大量数据的预定义查询; graph:分析和遍历连接数据的关系; |
模式 | 严格 | 灵活的 |
扩展性 | 垂直扩展(使用大型服务器向上扩展)(难度大,成本高) | 横向扩展(跨商品服务器横向扩展) (难度小,成本低) |
ACID事务支持 | 支持 | 大多数都不支持多记录的ACID事务。 然而MongoDB可以支持ACID事务; |
连表 | 通常需要 | 通常不需要 |
数据到对象的映射 | 要求对象关系映射-ORM | 许多NoSQL数据库不需要对象关系映射; MongoDB文档直接映射到大多数流行编程语言的数据结构。 |
相比于关系型数据库,nosql数据库提供了很多优点。NoSQL数据库
1)优点1:灵活的数据模型
NoSQL允许你按需把改变应用到数据库。你可以快速迭代和持续聚合新的特性,更快为用户提供数据服务;
2)优点2:横向扩展
当超出服务器性能时,大多数SQL数据库都要求你纵向扩展(迁移到更大的数据库,迁移成本非常昂贵)。
相反,大多数NoSQL数据库允许你横向扩展,意味着你可以随时按需增加偏移的商用服务器;
3)优点3:快速查询
NoSQL数据库中的查询能够比SQL数据库要快,为什么?
3.1)SQL数据库:因为SQL数据库的数据是规范化的,因此单个对象或整体的查询需要你连接多个表的数据。随着表的增长,连表的成本非常高昂;
3.2)NoSQL数据库:然而,NoSQL数据库中的数据通常以一种查询优化的方式进行存储。
4)优点4-开发人员易于上手
一些NoSQL数据库如MongoDB会把他们的数据结构映射到那些流行的编程语言;
1)缺点1:NoSQL不支持事务:
2)缺点2:NoSQL的存储空间比SQL数据库要大。
补充: 存储空间包括 磁盘空间,内存空间;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。