网站首页 > 教程文章 正文
在数据库选型上,没有一种架构能适合所有业务场景,需要在多种产品之间,根据业务需求在功能、性能、可靠性、成本等几方面取得平衡。更多的要考虑如何快速贴合自身的业务场景,做出取舍,这里主要介绍几个需要评估考虑的点,方便大家根据自身情况做出选择。
数据库基本准则:CAP定律
没有任何数据库技术可以绕过CAP 定理,按照CAP定理,在Consistency(一致性)、 Availability(可用性)、Partition tolerance (分区容错性)三者之间,不可能三者兼顾,而是最多同时兼顾两项。
1、技术需求:SQL/NoSQL/NewSQL
SQL(Structured Query Language):数据库,指关系型数据库,核心思想就是ACID(原子性,一致性,隔离性,持久性),主要满足CAP的CA要求。主要代表:SQLServer、Oracle、MySQL等。
NoSQL(Not Only SQL):泛指非关系型数据库, 以放宽ACID原则为代价,NoSQL采取的是事务最终一致性原则。Nosql常建立在分布式系统上,这使得它易于扩展分片和容错,可用性也高,它主要满足的是CAP中的AP要求。主要代表:Cassandra、MongoDB、Redis。
NewSQL:对各种新的可扩展/高性能数据库的简称,吸收了传统关系型数据库和NoSql数据库的优点,NewSQL目标是将SQL的ACID保证与NoSQL的可扩展性和高性能相结合,很显然它是必定会满足CAP的CP的,但是在分布式场景的情况下,在保证数据的分区容错性建立了多副本同步,同时要保证分布式场景跨服务器节点的事务一致,它的性能一定是存在使用瓶颈的,必定影响系统的高可用性。主要代表:OceanBase、TiDB。
2、业务需求:OLTP/OLAP/HTAP
专门用于在线事务处理的数据库,叫做 OLTP;专门用于分析型业务的数据库叫做 OLAP,而能够把两者结合起来的,叫做HTAP。
3、业务场景
实时交易查询,读写能力和延迟性都很重要,这时内存数据库就能解决这一问题。
关系型数据库往往能够支持关联查询,语法也支持SQL复杂度的需求,但是性能上会出现很大风险。
海量数据分析业务场景,对可用性和容错性要求较高,可以牺牲时效性,通过并发分片各自进行计算,保证数据的最终一致性,但是分析出来的数据一定要准确,这种NoSql数据库是理想选择。
想要快速扩容,保证数据安全,对业务影响冲击小就得选择分布式数据库。
4、存储方式:行/列/键值/文档/图
OLTP交易式场景,按照场景进行拆解到交易,订单,报文,接口,数据需要结合交易场景,按照行式快速把数据存储落地,这个时候快速满足数据库的 ACID 属性(原子性、一致性、隔离性和持久性)就变得非常重要,这时关系型数据库显然是最佳选择。
OLAP业务场景中,数据需要建立不同的模型对业务进行分析,往往建立很多的大宽表存储模型信息,这个时候往往用的是列式存储。
内存数据库大多都是键值存储的,场景上往往结合关系型数据库提升系统的整理性能,提高系统吞吐能力。
场景只是用于文档存储,那么数据库的读取速度和延迟时间很重要,这时文档数据库可能是理想型选择。
如果是存储的实体间关系交错复杂,则需要引入图数据库。
- 上一篇: 业务中台已深入人心,数据中台你了解吗?
- 下一篇: 7个让你欲罢不能的电脑黑科技软件,请大家低调使用
猜你喜欢
- 2025-05-02 业务中台已深入人心,数据中台你了解吗?
- 2025-05-02 一遇到复杂分析查询就卡顿?MySQL分析实例了解一下
- 2025-05-02 云计算走向边缘 青云QingCloud全维云平台布局云网边端
- 2025-05-02 祸害阿里云宕机3小时的IO HANG究竟是什么?
- 2025-05-02 我对技术架构的理解与架构师角色的思考
- 2025-05-02 了解一下列存储及其特点(下列存储器的叙述中正确的是)
- 2025-05-02 大数据正当时,理解这几个术语很重要
- 2025-05-02 干货分享|优炫数据库支持多业务场景
- 2025-05-02 「技术干货」你不理解的“OLAP”,从这4点一看就可以明白
- 2025-05-02 OLTP和OLAP的区别(olap和oltp的最终数据来源一样吗)
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)