关系型数据库和NoSQL的对比表格
2016-06-20 14:47
447 查看
首选给出关系型数据库和非关系型数据库之间的对比:
整个数据库演进的过程是这样的:
传统的关系型数据库,比如说MySQL,具有不错的性能,高稳定性,并且使用简单,功能强大。
刚开始的时候,网站的访问量不大,读写要求不高,一般的关系型数据库就能满足网站的需求了。
随着访问量上升,数据库压力增大,网站性能受到影响。程序员开始用缓存技术来缓解数据库的压力。
当访问量继续上升,多台服务器机器的缓存不能共享,同时大量的小文件的缓存又带来了IO压力,于是就引入了memcache缓存服务器,为多台服务器提供一个共享的高性能缓存服务。
当web服务的多样化,当某种业务写入数量比较多的时候,数据库又有了写入压力的增加。memcache只能缓解数据库的读取压力,所以写入压力的问题出现了。此时的解决方案是使用数据库复制技术实现读写分离,提高读写性能和可扩展性。比如说master-slave主从复制模式。
随着互联网发展,数据量的猛增,写入数量的持续增加,数据库的一致性要加锁等操作,使得性能瓶颈再一次出现。此时的解决方案是使用分表分库来缓解压力,以及实现扩展性。
但是所有这些都不足以满足数据写入读取的持续增加,关系型数据库的扩展性差,大数据量下的IO压力大等问题是一直存在的。同时这些技术的实现,比如说主从复制、分表分库等等,又花费了工作人员很多精力去处理。所以有了这些问题,也就促使了NoSQL的出现。
NoSQL具有很好的读写性能,这主要得益于它不具有一致性。同时数据库结构简单灵活,无需事先为存储的数据建立字段,相比于关系型数据库增删字段的严格限制,NoSQL在这一点上有先天的优势。也正是因为不需要严格的字段限制,使得NoSQL的冗余很低。
NoSQL的读写性能高主要是由于它不支持事务操作,不具有一致性,同时也由于它可能是部署在内存中的,比如说Redis,内存空间是有限的。正是由于不具有一致性这些原因,可能会带来一些错误,但是错误率比较低,一般的业务能够容忍的话就可以使用。
整个数据库演进的过程是这样的:
传统的关系型数据库,比如说MySQL,具有不错的性能,高稳定性,并且使用简单,功能强大。
刚开始的时候,网站的访问量不大,读写要求不高,一般的关系型数据库就能满足网站的需求了。
随着访问量上升,数据库压力增大,网站性能受到影响。程序员开始用缓存技术来缓解数据库的压力。
当访问量继续上升,多台服务器机器的缓存不能共享,同时大量的小文件的缓存又带来了IO压力,于是就引入了memcache缓存服务器,为多台服务器提供一个共享的高性能缓存服务。
当web服务的多样化,当某种业务写入数量比较多的时候,数据库又有了写入压力的增加。memcache只能缓解数据库的读取压力,所以写入压力的问题出现了。此时的解决方案是使用数据库复制技术实现读写分离,提高读写性能和可扩展性。比如说master-slave主从复制模式。
随着互联网发展,数据量的猛增,写入数量的持续增加,数据库的一致性要加锁等操作,使得性能瓶颈再一次出现。此时的解决方案是使用分表分库来缓解压力,以及实现扩展性。
但是所有这些都不足以满足数据写入读取的持续增加,关系型数据库的扩展性差,大数据量下的IO压力大等问题是一直存在的。同时这些技术的实现,比如说主从复制、分表分库等等,又花费了工作人员很多精力去处理。所以有了这些问题,也就促使了NoSQL的出现。
NoSQL具有很好的读写性能,这主要得益于它不具有一致性。同时数据库结构简单灵活,无需事先为存储的数据建立字段,相比于关系型数据库增删字段的严格限制,NoSQL在这一点上有先天的优势。也正是因为不需要严格的字段限制,使得NoSQL的冗余很低。
NoSQL的读写性能高主要是由于它不支持事务操作,不具有一致性,同时也由于它可能是部署在内存中的,比如说Redis,内存空间是有限的。正是由于不具有一致性这些原因,可能会带来一些错误,但是错误率比较低,一般的业务能够容忍的话就可以使用。
相关文章推荐
- Oracle DB 学习备注
- 配置mongodb 复制集3.2
- mysql同一台服务器上不同数据库中个别表内容同步
- 关于谷歌地图获取定位然后mongodb实现矩形框、距离远近排序 、mgo驱动。
- TimesTen 应用层数据库缓存学习:19. 理解AWT缓存组的三种模式
- sql server查询优化
- oracle 系统语法
- 转:使用JMeter创建数据库(Mysql)测试
- 一般要使得数据库查询语句性能好点遵循以下原则
- spring data redis 1.7.1
- Linux oracle单机停机迁移数据库(目标不安装oracle软件的情况)
- mongodb安装与配置
- 删除数据库字段约束
- IOS 数据库管理系统(SQLite)
- sqlserver2012评估期已过问题处理
- sql server 2012提示评估期已过的解决办法 附序列号
- MyBatis Generator生成sqlMap、DAO、mo
- MySQL server has gone away 问题
- cursor游标(mysql)
- MySQL学习之——索引(普通索引、唯一索引、全文索引、索引匹配原则、索引命中等)