一、关系型数据库

1.1. 非常适合联机事务处理(OLTP)行为
1.2. 卓越的安全特性和有力的查询引擎

二、NoSQL流行原因

2.1. 越来越多的数据存储和访问都在弹性云计算资源中
2.2. 磁盘解决方案更廉价,性能也更快,存放了越来越多的数据(PB级的数据不是什么稀罕事)
2.3. 大量的数据需要分析、数据挖掘、模式识别、机器学习等
2.4. 关系型数据库处理速度很难满足海量数据,索引会加快检索速度,但记录数足够多,产生相反作用,另外内置了大量的开销确保数据存表之前完成事务处理和提交

三、4种NoSQL数据库

3.1. 键值存储

特点:采用哈希表,优点:速度快,高扩展,处理海量写入行为用处明显。读取历史订单、时间、交易这种大型、静态、结构化数据时有良好的表现。缺点:没有对数据库结构描述(schema),不适合处理复杂数据和关系。代表Redis、Voldemort、DynamoDB

3.2. 列存储

为了存储和处理跨多台机器之上的大规模分布式数据。这种数据库威力在于在运行中添加列,并且运行行值出现空缺。优势:速度极快,扩展性非常好,运行时容易做出变更。列存储对多源异构数据整合时表现的非常优秀,不适于高度连接的数据源。典型代表:Hadoop和Cassandra

3.3. 文档存储

文档存储数据库用于存储以文档形式进行存放的非结构化数据。通常以XML、JSON、PDF、Word、Excel等封装。大多数日志解决方案使用文档存储将来自不同数据源的日志文件整合一起,比如数据库日志,Web服务器日志、应用服务器日志等。优点:由不同格式组成的大规模数据扩展方面表现突出。缺点:在高度连接的数据处理上差强人意。代表:CouchDB和MongoDB

3.4. 图像数据库

用于存储和管理彼此的关系。常用于展现关系的可视化表述,尤其在社交媒体分析领域。优势:在绘图方面表现优异,缺点:为了产生结果必须对整个关系树进行遍历,所以在其他方面却性能较差。代表是:Neo4j和InfoGrid。

四、其它存储方式选择

除了SQL和NoSQL,也会以文件方式存储数据。比如照片、视频、Mp3这样的大型文件或更大,Web服务器如果用数据库对这些大字段进行存储和检索的话,可能很难提高用户体验。更好的办法是内容分发忘了(CDN),通过互联网连接位于多个数据中心的分布式计算机网络。CDN能够提高可用性和性能,是流媒体和其他带宽密集型数据的选择工具之一。

在这里插入图片描述

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐