为什么同时使用mysql和nosql
因为关系数据库运行的慢 处理大数据的大多数情况是nosql比较高效 但是nosql也没法完全取代关系数据库 nosql不能处理复杂的逻辑 但是很多情况下只是简单的mapping,汇总, 在目前互联网大数据的环境下nosql会越来越普及
谈谈mongodb,mysql的区别和具体应用场景
官方文档看一看。
编程实例练一练。
源码看一看。
一般互联网公司多用mysql,redis,mongodb做存储层,hadoop,spark做大数据分析。
mysql适合结构化数据,类似excel表格一样定义严格的数据,用于数据量中,速度一般支持事务处理场合。
redis适合缓存内存对象,如缓存队列,用于数据量小,速度快不支持事务处理高并发场合。
mongodb,适合半结构化数据,如文本信息,用于数据量大,速度较快不支持事务处理场合。
hadoop是个生态系统,上面有大数据分析很多组件,适合事后大数据分析任务。
spark类似hadoop,偏向于内存计算,流计算,适合实时半实时大数据分析任务。
移动互联网及物联网让数据呈指数增长,NoSql大数据新起后,数据存储领域发展很快,似乎方向都是向大数据,内存计算,分布式框架,平台化发展,出现不少新的方法,如Apache Ignite适合于内存计算就集成了好多功能模快,Apache Storm、Spark、Flink也各有特点。
一般普通应用TB,GB级别达不到PB级别的数据存储,用mongodb,mysql就够了,hadoop,spark这类是航母一般多是大规模应用场景,多用于事后分析统计用,如电商的推荐系统分析系统。
聪明的战士总是选择适合的武器。具体什么场合用什么数据存储策略或混合使用,需要分析业务特点及未来业务发展需求来决定。
大数据时代需要哪些数据库技术
数据库技术的发展实际上取决于互联网发展过程中需求的不断升级。如果数据是小钱钱,那么数据库就好比古代的布袋,皮钱包再到如今的电子钱包。演变就是为了适应需求的变化。总的来说,根据数据库原理的不同,可以分为关系型数据库,NoSQL数据库以及时序数据库。下面就为大家简单介绍下这几类数据库的特点以及应用场景:
关系型数据库
关系型数据库是比较传统的数据库,其中包括SQL Server,Oracle,DB2,MySQL等。关系型数据库是基于行存储的,适合结构化实体的存储,读写性能比较平均,支持复杂条件查询。但对于非结构化数据的存储就有些吃力了。
NoSQL数据库
NoSQL数据库的代表非MongoDB莫属,如今,随着MySQL 8的出现,NoSQL数据库的选择也变得多样起来。NoSQL数据库包括文档型数据库,列存储数据库等。这类数据库很好的支持了非结构化数据的存储,但是部分此类数据库由于其底层实现,读性能相较于写性能来说要优异许多。举个栗子,Google Cloud DataStore是一款文档型数据库,其底层基于列索引的BigTable实现。当插入一个JSON对象时,内部需要很多操作来完成对象的保存,相较于关系型数据库的插入操作要麻烦一些。
时序数据库
时序数据库是一个新兴的概念,目前比较流行有InfluxDB,国内初创公司涛思数据的TDengine也是不错的选择。时序数据库适用于物联网传感器数据的存储以及应用日志收集等场景。通过名字就可以看出该类数据库存储的数据基本都是通过时间戳索引的,因此同样不支持复杂的条件查询。
结语
关系型数据库,NoSQL数据库以及时序数据库的选择取决于要存储的数据类型,应用场景。但在互联网如此发达的今天,还要应对高并发,高可用的挑战。也就有了后来的读写分离,故障转移,读拷贝等技术的出现,同时也诞生了应用缓存Redis,消息队列Kafka等来缓解数据库的压力。在选择数据库时,根据应用场景,数据类型选择最合适的就好。
还没有评论,来说两句吧...