【系统架构设计 每日一问】四 如何对关系型数据库及NoSql数据库选型

根据不同的业务需求和场景,选择适合的数据库类型至关重要。以下是一个优化后的表格展示,涵盖了管理型系统、大流量系统、日志型系统、搜索型系统、事务型系统、离线计算和实时计算七大类业务系统的数据库选型建议。先明确下NoSQL的分类

NoSQL数据库分类

在这里插入图片描述

场景分析及选型

系统类型场景数据量并发量实时性一致性要求读写分布和类型安全性运维性数据库选型
管理型系统运营类管理中等中等中等读写均衡关系型数据库(如MySQL、PostgreSQL)
大流量系统电商单品页服务高(后台)读多写少(前台)后台:关系型数据库(如MySQL、PostgreSQL)
前台:K-V数据库(如Redis、Memcached)
日志型系统日志收集与分析写多读少原始数据:列式数据库(如HBase、Cassandra)
日志搜索:倒排索引数据库(如Elasticsearch)
搜索型系统站内商品搜索中等读多写少后台:关系型数据库(如MySQL、PostgreSQL)
前台:倒排索引数据库(如Elasticsearch)
事务型系统金融交易、库存中等读写均衡关系型数据库(如MySQL、PostgreSQL)+ 缓存(如Redis)+ 一致性协议(如Paxos、Raft)或新型关系数据库(如CockroachDB、TiDB)
离线计算大数据批量分析读多写少列式数据库(如Hadoop HDFS、Apache Parquet)
或关系型数据库(如MySQL、PostgreSQL)
实时计算实时监控、物联网中高写多读少时序数据库(如InfluxDB、TimescaleDB)
或列式数据库(如Druid、ClickHouse)

详细说明

  1. 管理型系统

    • 适用场景:运营类系统、管理信息系统。
    • 数据库选型:关系型数据库(如MySQL、PostgreSQL)因为其高一致性和数据完整性。
  2. 大流量系统

    • 适用场景:电商单品页的某个服务。
    • 数据库选型
      • 后台:关系型数据库(如MySQL、PostgreSQL)以确保数据一致性。
      • 前台:内存型数据库(如Redis、Memcached)以应对高并发和快速响应需求。
  3. 日志型系统

    • 适用场景:日志收集和分析。
    • 数据库选型
      • 原始数据存储:列式数据库(如HBase、Cassandra)以优化大数据写入。
      • 日志搜索:倒排索引数据库(如Elasticsearch)以实现快速查询和搜索。
  4. 搜索型系统

    • 适用场景:站内搜索(如商品搜索)。
    • 数据库选型
      • 后台:关系型数据库(如MySQL、PostgreSQL)用于数据管理。
      • 前台:倒排索引数据库(如Elasticsearch)用于快速搜索和查询。
  5. 事务型系统

    • 适用场景:库存管理、交易系统、记账系统。
    • 数据库选型:关系型数据库(如MySQL、PostgreSQL)+ 缓存(如Redis)+ 一致性协议(如Paxos、Raft),或者使用新型关系数据库(如CockroachDB、TiDB)以确保数据一致性和高并发处理。
  6. 离线计算

    • 适用场景:大数据分析和处理。
    • 数据库选型:列式数据库(如Hadoop HDFS、Apache Parquet)或关系型数据库(如MySQL、PostgreSQL)以应对大量数据的批量处理需求。
  7. 实时计算

    • 适用场景:实时监控和分析。
    • 数据库选型:时序数据库(如InfluxDB、TimescaleDB)或列式数据库(如Druid、ClickHouse)以支持高频数据写入和实时分析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/47753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据学习之sparkstreaming

SparkStreaming idea中初步实现 Spark core: SparkContext 核心数据结构:RDD Spark sql: SparkSession 核心数据结构:DataFrame Spark streaming: StreamingContext 核心数据结构:DStream(底层封装了RDD),遍历出其中的RDD即可进行…

ReadAgent,一款具有要点记忆的人工智能阅读代理

人工智能咨询培训老师叶梓 转载标明出处 现有的大模型(LLMs)在处理长文本时受限于固定的最大上下文长度,并且当输入文本越来越长时,性能往往会下降,即使在没有超出明确上下文窗口的情况下,LLMs 的性能也会随…

中文之美:荷·雅称

文章目录 引言I 荷雅称水宫仙子、六月花神水芝、水芸溪客、水旦芙蕖、菡萏朱华、红蕖风荷、静客II 与荷、莲相关的句子、诗词周敦颐李商隐李重元杨公远孟浩然刘光祖苏轼汪曾祺席慕蓉余光中引言 中文之美,美在诗词歌赋,美在绝句华章,也美在对事物名称的雅致表达。 中文对万物…

GPT-4o mini是什么?

今天,全网都知道 OpenAI 发现货了! GPT-4o mini 取代 GPT 3.5,从此坐上正主之位。 从官网信息来看,OpenAI 最新推出的 GPT-4o mini 重新定义了 AI 成本效益的标准,其性能优于前代模型 GPT-3.5 Turbo,且成本…

ruoyi-cloud-plus

1.X项目初始化 (dromara.org)参考文档! 可以直接参考以上链接!我只是整理我自己需要的部分,方便查看使用。 nacos 服务启动顺序 必须启动基础建设: mysql redis nacos可选启动基础建设: minio(影响文件上传) seata(影响分布式事务 默认开启…

Synopsys:Design Compiler的XG模式和DB模式

相关阅读 Synopsyshttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482 很久之前,Design Compiler使用的是DB模式(包括一些其他工具,例如DFT Compiler, Physical Compiler和Power Compiler)&…

二叉树基础及实现(一)

目录: 一. 树的基本概念 二. 二叉树概念及特性 三. 二叉树的基本操作 一. 树的基本概念: 1 概念 : 树是一种非线性的数据结构,它是由n(n>0 )个有限结点组成一个具有层次关系的集合。 把它叫做树是因…

数据结构之初始二叉树(4)

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程(ಥ_ಥ)-CSDN博客 所属专栏:数据结构(Java版) 二叉树的基本操作 二叉树的相关刷题(上)通过上篇文章的学习,我们…

queue的模拟实现【C++】

文章目录 全部的实现代码放在了文章末尾什么是适配器模式?准备工作包含头文件定义命名空间类的成员变量 默认成员函数emptysizefrontbackpushpop全部代码 全部的实现代码放在了文章末尾 queue的模拟实现和stack一样,采用了C适配器模式 queue的适配器一…

Java生成四位纯数字并且确保唯一性

背景: 给了我一个需求,由于某些问题原因,需要给属性和数据添加一个code字段,这是给我发的消息 这两个要求其实是同一个需求,就是在创建对象的时候塞入一个unique的code嘛,听起来很简单吧,但是实…

GooglePlay 金融品类政策更新(7月17号)

距离上次政策大更新(4月5号)才过去了3个月,Google Play又迎来了一次大更新,不得不说Google Play的要求越来越高了。 我们来梳理一下这次GooglePlay针对金融品类更新了哪些政策: 1.要求提供金融产品和服务的开发者必须注册为组织…

Window环境下MySQL管理

1、MySQL服务启用和停止 图形化界面管理 使用键盘组合键(Win R)打开运行对话框,在对话框中输入services.msc并点击确定。 这里可以看到服务名称为MySQL84并处于正在运行的状态。 选中后右键可以进行暂停、停止、重启等操作。 命令提示符管理…

OpenCV 直方图概念,直方图均衡化原理详解

文章目录 直方图相关概念颜色灰度级作用应用场景 C 使用OpenCV绘制直方图单通道直方图关键代码分析:calcHist函数分析使用OpenCV API来绘制直方图 效果图: 彩色三通道直方图效果图: 直方图均衡化概念均衡化作用均衡化效果均衡化数学原理步骤数…

Linux中进程间通信--匿名管道和命名管道

本篇将会进入 Linux 进程中进程间通信,本篇简要的介绍了 Linux 中进程为什么需要通信,进程间通信的常用方式。然后详细的介绍了 Linux 进程间的管道通信方式,管道通信分为匿名管道和命名管道,本篇分别介绍了其实现的原理&#xff…

基于VMware(虚拟机) 创建 Ubunton24.04

目录 1.设置 root 密码 2. 防火墙设置 2.1 安装防火墙 2.2 开启和关闭防火墙 2.3 开放端口和服务规则 2.4 关闭端口和删除服务规则 2.5 查看防火墙状态 3. 换源 3.1 源文件位置 3.2 更新软件包 1. 设置网络 1. 在安装ubuntu时设置网络 2.在配置文件中修改 2.设置 r…

17_高级进程间通信 UNIX域套接字1

非命名的UNIX域套接字 第1个参数domain,表示协议族,只能为AF_LOCAL或者AF_UNIX; 第2个参数type,表示类型,只能为0。 第3个参数protocol,表示协议,可以是SOCK_STREAM或者SOCK_DGRAM。用SOCK_STR…

HTTP 缓存

缓存 web缓存是可以自动保存常见的文档副本的HTTP设备,当web请求抵达缓存时,如果本地有已经缓存的副本,就可以从本地存储设备而不是从原始服务器中提取这个文档。使用缓存有如下的优先。 缓存减少了冗余的数据传输缓存环节了网络瓶颈的问题…

MySQL学习之InnoDB引擎,索引

Mysql中的引擎 我们先来看一下MySql提供的有哪些引擎 mysql> show engines; 从上图我们可以查看出 MySQL 当前默认的存储引擎是InnoDB,并且在5.7版本所有的存储引擎中只有 InnoDB 是事务性存储引擎,也就是说只有 InnoDB 支持事务。 查看MySQL当前默认的存储引…

算法力扣刷题记录 五十一【654.最大二叉树】

前言 二叉树篇,继续。 记录 五十一【654.最大二叉树】 一、题目阅读 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法从 nums 递归地构建: 创建一个根节点,其值为 nums 中的最大值。递归地在最大值 左边 的 子数组前缀上 构建左子树。…

套接字编程一(简单的UDP网络程序)

文章目录 一、 理解源IP地址和目的IP地址二、 认识端口号1. 理解 "端口号" 和 "进程ID"2. 理解源端口号和目的端口号 三、 认识协议1. 认识TCP协议2. 认识UDP协议 四、 网络字节序五、 socket编程接口1. socket 常见API2. sockaddr结构(1&#…