如今,数据的重要性已经渗透到各个领域,并已成为每个行业发展和转型的必要元素。但是,我们仍然需要数据库来帮助我们存储和组织这些数据。在Internet时代,拥有可用功能的单个数据库的时代已经过去,对数据库的新需求也在不断出现。随着这些新要求的提出,越来越多的公司意识到使用传统数据库来满足不同需求的“一刀切”方法已不再有效。因此数据库类型也在逐渐的增多,以此来满足需求。那么数据库类型有哪些?如何选择合适的数据库类型?
数据库类型有哪些?
1.关系型数据库
作为被广泛采用的数据库类型,关系型数据库在很多场景下,比如企业的 ERP,CRM,财务系统和交易系统等,具有独特的优势。这些场景下,客户通常会有对于数据有强一致性的需求,要求数据库支持事务性处理(Transactional Processing)。基于客户这一需求,AWS 为此构建了 Amazon Aurora 数据库。Amazon Aurora 是一个针对云构建的与 MySQL 和 PostgreSQL 兼容的关系型数据库,它结合了高端商业数据库的性能和可用性,以及开源数据库的简单性和成本效益。
2.键 - 值型数据库
在移动互联网,电商,游戏以及物联网等很多新型场景中,数据库需要面对超大规模的数据处理,同时又需要低延迟的性能保障。对于这些需要极高的吞吐量和并发性、低延迟以及可靠性的需求,我们提供了 Amazon DynamoDB。这是一款适用于任何规模的快速灵活的 NoSQL 数据库服务。
3.文档型数据库
很多客户将 MongoDB 用作文档数据库,用于存储、检索和管理半结构化数据。由于设置和管理 MongoDB 集群所带来的复杂性,在 MongoDB 上构建可以快速扩展到多兆字节(TB)和每秒数十万次读写的高性能、高可用性的应用程序极具挑战性。为此,AWS提供了Amazon DocumentDB,它是一项快速、可扩展、高度可用且完全托管的文档数据库服务,支持 MongoDB 工作负载。作为一个文档数据库,Amazon DocumentDB 使得存储、查询和索引 JSON 数据变得简单。
如何选择合适的数据库类型?
个人的理解是结合以下几个方面来考虑:
1读写速度
这存储数据方式往往决定读写的速度。
1)Mysql无论数据还是索引都存放在硬盘中。到要使用的时候才交换到内存中。能够处理远超过内存总量的数据。
2)MongoDB的所有数据实际上是存放在硬盘的,所有要操作的数据通过mmap的方式映射到内存某个区域内。然后,MongoDB就在这块区域里面进行数据修改,避免了零碎的硬盘操作。
3)Redis所有数据都是放在内存中的。但是它也支持数据持久化到硬盘中。
我们都知道磁盘读取数据的效率远远低于内存。所以在一般情况下,这三者的读写数据的速度排序是:Redis>MongoDB>Mysql
2是否支持事务以及复杂查询
MySql是关系型数据库,支持事务操作以及join方式的复结构化查询。而MongoDB是非关系型数据库,既不支持事务操作,也不支持join操作。Redis同样不支持。
因此,针对以下场景应考虑使用MySql:
1)业务数据中有大量结构化数据,如用户账号、地址等。因为这些数据通常需要做结构化查询。
2)业务存在许多事务性操作,需要保证事务的强一致性。
3业务数据量增长速度
在一到两年内,业务数据的增长量不在预测范围内,优先考虑使用MongoDB。
因为MongoDB内建了sharding、很多数据分片的特性,容易水平扩展,比较好的适应大数据量增长的需求。而MySql在这方面表现要逊色些,MySql单表数据量达到5-10G时会出现明细的性能降级,需要做数据的水平和垂直拆分、库的拆分完成扩展。
Redis由于内存容量限制,不会用来存储大量数据。一般拿它做缓存。
4表结构是否明确
如果在业务场景中,数据库表接口不明确,数据还在不断增加。例如以下场景,内容管理平台,用户社交平台,优先考虑使用MangDB。
因为MongoDB是非结构化文档数据库,扩展字段很容易且不会影响原有数据。
上述就是关于数据库类型有哪些,以及如何选择合适的数据库类型的全部内容,想了解更多关于数据库的信息,请继续关注。