非关系型数据库和关系型数据库区别
2016-12-27 11:25
696 查看
实质。非关系型数据库的实质:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能。
![](http://b.hiphotos.baidu.com/exp/w=500/sign=3e589f5b7a1ed21b79c92ee59d6fddae/aec379310a55b31952088cdc44a98226cefc17a1.jpg)
价格。目前基本上大部分主流的非关系型数据库都是免费的。而比较有名气的关系型数据库,比如Oracle、DB2、MSSQL是收费的。虽然Mysql免费,但它需要做很多工作才能正式用于生产。
![](http://d.hiphotos.baidu.com/exp/w=500/sign=7071f864fb039245a1b5e10fb795a4a8/4afbfbedab64034fcb4fccafa8c379310b551d9c.jpg)
功能。实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。
![](http://g.hiphotos.baidu.com/exp/w=500/sign=16a932bdac18972ba33a00cad6cc7b9d/f703738da977391275a48bc8ff198618377ae29d.jpg)
传统的SQL数据库有3个缺点
许可费用昂贵
不能自动Sharding
严格的Schema
互联网公司一般都是技术密集型的,就自己根据自己的需求搞了一套数据存储,牺牲了严格一致性,满足互联网伸缩性的要求。
![](http://d.hiphotos.baidu.com/exp/w=500/sign=1c9dd2bdbf99a9013b355b362d940a58/7acb0a46f21fbe0968cecdbd6c600c338644ad82.jpg)
nosql 当年是为了处理 杂乱的非结构化数据来设计的 比如 网页访问信息 那就如楼上说的 阉割了sql 的 acid 特性 这样当然快了啊 比如插入数据
相反如果是一些 交易数据 数据的安全稳定 压倒一切的时候 rdbms 就显现威力了 但是rdbms 在面对nosql的 一些挑战之后 大力优化了 对于一些 非结构化数据的支持 比如json 数据 同时rdbms 对于 olap and oltp 的支持 也要比 nosql快的你是一点半点
![](http://g.hiphotos.baidu.com/exp/w=500/sign=07df486985025aafd3327ecbcbecab8d/86d6277f9e2f0708fef424a9ee24b899a801f2a2.jpg)
非关系型数据库的优势:1. 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。2. 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
![](http://d.hiphotos.baidu.com/exp/w=500/sign=09a5406d0dd162d985ee621c21dea950/8644ebf81a4c510fd254ecb36759252dd52aa582.jpg)
关系型数据库的优势:1. 复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。2. 事务支持使得对于安全性能很高的数据访问要求得以实现。对于这两类数据库,对方的优势就是自己的弱势,反之亦然。
![](http://e.hiphotos.baidu.com/exp/w=500/sign=55cd7109f103738dde4a0c22831ab073/622762d0f703918f4c203363563d269758eec4a2.jpg)
![](http://b.hiphotos.baidu.com/exp/w=500/sign=3e589f5b7a1ed21b79c92ee59d6fddae/aec379310a55b31952088cdc44a98226cefc17a1.jpg)
价格。目前基本上大部分主流的非关系型数据库都是免费的。而比较有名气的关系型数据库,比如Oracle、DB2、MSSQL是收费的。虽然Mysql免费,但它需要做很多工作才能正式用于生产。
![](http://d.hiphotos.baidu.com/exp/w=500/sign=7071f864fb039245a1b5e10fb795a4a8/4afbfbedab64034fcb4fccafa8c379310b551d9c.jpg)
功能。实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择。
![](http://g.hiphotos.baidu.com/exp/w=500/sign=16a932bdac18972ba33a00cad6cc7b9d/f703738da977391275a48bc8ff198618377ae29d.jpg)
传统的SQL数据库有3个缺点
许可费用昂贵
不能自动Sharding
严格的Schema
互联网公司一般都是技术密集型的,就自己根据自己的需求搞了一套数据存储,牺牲了严格一致性,满足互联网伸缩性的要求。
![](http://d.hiphotos.baidu.com/exp/w=500/sign=1c9dd2bdbf99a9013b355b362d940a58/7acb0a46f21fbe0968cecdbd6c600c338644ad82.jpg)
nosql 当年是为了处理 杂乱的非结构化数据来设计的 比如 网页访问信息 那就如楼上说的 阉割了sql 的 acid 特性 这样当然快了啊 比如插入数据
相反如果是一些 交易数据 数据的安全稳定 压倒一切的时候 rdbms 就显现威力了 但是rdbms 在面对nosql的 一些挑战之后 大力优化了 对于一些 非结构化数据的支持 比如json 数据 同时rdbms 对于 olap and oltp 的支持 也要比 nosql快的你是一点半点
![](http://g.hiphotos.baidu.com/exp/w=500/sign=07df486985025aafd3327ecbcbecab8d/86d6277f9e2f0708fef424a9ee24b899a801f2a2.jpg)
非关系型数据库的优势:1. 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高。2. 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展。
![](http://d.hiphotos.baidu.com/exp/w=500/sign=09a5406d0dd162d985ee621c21dea950/8644ebf81a4c510fd254ecb36759252dd52aa582.jpg)
关系型数据库的优势:1. 复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询。2. 事务支持使得对于安全性能很高的数据访问要求得以实现。对于这两类数据库,对方的优势就是自己的弱势,反之亦然。
![](http://e.hiphotos.baidu.com/exp/w=500/sign=55cd7109f103738dde4a0c22831ab073/622762d0f703918f4c203363563d269758eec4a2.jpg)
相关文章推荐
- 关系型数据库和非关系型数据库区别
- 关系型数据库与非关系型数据库区别
- 关系型数据库与非关系型数据库的区别
- 关系型数据库和非关系型数据库的区别
- 关系型和非关系型数据库的区别?
- 【数据库学习】之关系型数据库与非关系型数据库的区别?
- 关系型数据库与非关系型数据库的区别?
- 关系型数据库和非关系型数据库的区别
- 关系型数据库和非关系型数据库的区别
- 关系型数据库和非关系型数据库的区别
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
- 关系型数据库与非关系型数据库的区别
- 关系型和非关系型数据库的区别?
- 关系型数据库和非关系型数据库区别、oracle与mysql的区别
- 关系型数据库与非关系型数据库的区别?
- 关系型数据库和非关系型数据库区别
- 关系型数据库和非关系型数据库的区别
- 非关系型数据库和关系型数据库的区别??
- SQL与NoSQL(关系型与非关系型)数据库的区别
- 关系型数据库和非关系型数据库区别