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

news2024/9/20 14:39:38

根据不同的业务需求和场景,选择适合的数据库类型至关重要。以下是一个优化后的表格展示,涵盖了管理型系统、大流量系统、日志型系统、搜索型系统、事务型系统、离线计算和实时计算七大类业务系统的数据库选型建议。先明确下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.coloradmin.cn/o/1940647.html

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

相关文章

微信小程序开发--点击圆圈小问号弹注解tip 点击其他区域关闭(组件 w-tip 弹框在小圆圈的 上下左右 可以自己控制 )

引言 在微信小程序开发中,实现用户交互的多样性是提升用户体验的关键之一。本文将详细介绍如何在微信小程序中实现点击圆圈小问号弹出注解(Tip)的功能。这种功能常见于帮助信息、提示说明等场景,能够为用户提供即时的帮助和反馈。…

昇思25天学习打卡营第17天|LLM-基于MindSpore的GPT2文本摘要

打卡 目录 打卡 环境准备 准备阶段 数据加载与预处理 BertTokenizer 部分输出 模型构建 gpt2模型结构输出 训练流程 部分输出 部分输出2(减少训练数据) 推理流程 环境准备 pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspo…

两个数组的dp问题

目录 最长公共子序列 不相交的线 不同的子序列 通配符匹配 正则表达式匹配 交错字符串 两个字符串的最小ASCII删除和 最长重复子数组 声明:接下来主要使用动态规划来解决问题!!! 最长公共子序列 题目 思路 根据经验题目…

项目笔记| 基于Arduino和IR2101的无刷直流电机控制器

本文介绍如何使用 Arduino UNO 板构建无传感器无刷直流 (BLDC) 电机控制器或简单的 ESC(电子速度控制器)。 无刷直流电机有两种类型:有传感器和无传感器。有感无刷直流电机内置3个霍尔效应传感器,这些传感…

宝塔SSL续签失败

我有2个网站a和b(文字中用baidu.com替换我的域名) b是要续签那个,但续签报错: nginx version: nginx/1.22.1 nginx: [emerg] host not found in upstream "github.com" in /www/server/panel/vhost/nginx/proxy/a.bai…

【Redis进阶】事务

1. Redis与MySQL的事务差别 相信一谈到事务,大家马上就能联想到MySQL的事务,其事务具有ACID四大特性,但是Redis的事务相比较于MySQL,那就是个"弟中弟",下面我们就来简单对比两者的事务特性: 原…

用神经网络求解微分方程

微分方程是物理科学的主角之一,在工程、生物、经济甚至社会科学中都有广泛的应用。粗略地说,它们告诉我们一个量如何随时间变化(或其他参数,但通常我们对时间变化感兴趣)。我们可以了解人口、股票价格,甚至…

【Java面向对象】二进制I/O

文章目录 1.二进制文件2.二进制 I/O 类2.1 FileInputStream 和 FileOutputStream2.2 FilterInputStream和 FilterOutputStream2.3 DatalnputStream 和 DataOutputStream2.4 BufferedInputStream 和 BufferedOutputStream2.5 ObjectInputStream 和 ObjectOutputStream 2.6 Seria…

深入理解 Linux Zero-copy 原理与实现策略图解

用户态和内核态 一般来说,我们在编写程序操作 Linux I/O 之时十有八九是在用户空间和内核空间之间传输数据,因此有必要先了解一下 Linux 的用户态和内核态的概念。 从宏观上来看,Linux 操作系统的体系架构分为用户态和内核态(或者…

昇思25天学习打卡营第24天|ResNet50迁移学习

课程打卡凭证 迁移学习 迁移学习是机器学习中一个重要的技术,通过在一个任务上训练的模型来改善在另一个相关任务上的表现。在深度学习中,迁移学习通常涉及在一个大型数据集(如ImageNet)上预训练的模型上进行微调,以便…

设计模式之策略模式_入门

前言 最近接触了优惠券相关的业务,如果是以前,我第一时间想到的就是if_else开始套,这样的话耦合度太高了,如果后期添加或者删除优惠券,必须直接修改业务代码,不符合开闭原则,这时候就可以选择我…

vue3.0学习笔记(一)——vue3简介与vite脚手架的使用

1. 为什么学vue3 Vue3现状: vue-next 2020年09月18日,正式发布vue3.0版本。但是由于刚发布周边生态不支持,大多数开发者处于观望。现在主流组件库都已经发布了支持vue3.0的版本,其他生态也在不断地完善中,这是趋势。…

Python | Leetcode Python题解之第268题丢失的数字

题目: 题解: class Solution:def missingNumber(self, nums: List[int]) -> int:n len(nums)total n * (n 1) // 2arrSum sum(nums)return total - arrSum

Qt第十三章 目录和文件操作

目录和文件操作 文章目录 目录和文件操作设备I/O简介I/O设备的类型基本文件读写QFileQTemporaryFile 流操作QTextStreamQDataStream QFileInfoQDirQFileSystemWatcherQStandardPathsQSettings 设备I/O 简介 I/O设备的类型 基本文件读写 QFile QFile file("C:/Users/PV…

Cisco 路由重发布 —— 实现路由信息在不同路由域间的传递

一、技术背景 在实际的组网中,可能会遇到这样一个场景:在一个网络中同时存在两种或者两种以上的路由协议。例如客户的网络原先是纯 Cisco 的设备,使用 EIGRP 协议将网络的路由打通。但是后来网络扩容,增加了一批华为的设备&#…

HAL库源码移植与使用之低功耗模式

低功耗特性对用电池供电的产品: 更小电池体积(降低了大小和成本) 延长电池寿命 电磁干扰更小,提高无线通信质量 电源设计更简单,无需过多考虑散热问题 电源供电区分为: 分为VDD供电区…

平面五杆机构运动学仿真matlab simulink

1、内容简介 略 89-可以交流、咨询、答疑 2、内容说明 略 ] 以 MATLAB 程序设计语言为平台 , 以平面可调五杆机构为主要研究对象 , 给定机构的尺寸参数 , 列出所 要分析机构的闭环矢量方程 , 使用 MATLAB 软件中 SIMULINK 仿真工具 , 在 SIMULINK 模型窗口下建立数…

深入理解TensorFlow底层架构

目录 深入理解TensorFlow底层架构 一、概述 二、TensorFlow核心概念 计算图 张量 三、TensorFlow架构组件 前端 后端 四、分布式计算 集群管理 并行计算 五、性能优化 内存管理 XLA编译 六、总结与展望 深入理解TensorFlow底层架构 一、概述 TensorFlow是一个开…

从0开始的STM32HAL库学习8

PWM控制舵机 配置环境 1. 选择TIM2时钟 2.选择内部时钟模式,打开通道二 3.分频系数PSC:72-1 自动重装寄存器ARR:20000-1 输出比较寄存器 CCR:500~2500( 后面可调整 ) 脉冲选择500后期可以改 编辑代码 调用启动函数 HAL_TIM_PWM_Start(&htim2,TIM_CHANN…

一分钟图情论文:《智慧数据视角下古籍数字出版的创新路径》

由武汉大学的雷珏莹和王晓光合著的《智慧数据视角下古籍数字出版的创新路径研究》论文从智慧数据1的视角出发,探讨了我国古籍数字出版的现状及其发展瓶颈,提出了古籍数字出版在内容、形式、服务和技术四个方面的创新路径。 文中, 研究者首先详细分析了当…