当前位置: 首页 > news >正文

【架构】NewSQL

文章目录

    • NewSQL
    • TiDB
      • TiDB 主要组件
      • 特点
      • 使用场景
      • 安装与部署
    • 推荐阅读

NewSQL

NewSQL是一种数据库管理系统(DBMS)的类别,它结合了NoSQL数据库的可扩展性和传统SQL数据库的事务一致性。具体来说,NewSQL数据库旨在解决传统关系型数据库在处理大规模并发事务时遇到的性能瓶颈和扩展性问题,同时保持了对SQL语言的支持和ACID(原子性、一致性、隔离性、持久性)事务属性。
在这里插入图片描述

以下是NewSQL的一些主要特征:

  1. 高性能:NewSQL数据库设计用于处理大量并发用户请求,能够在分布式环境中提供高吞吐量和低延迟。

  2. 可扩展性:NewSQL系统通常支持水平扩展(横向扩展),这意味着可以通过添加更多服务器来提升系统的处理能力,而非仅仅依赖于单台服务器的硬件升级。

  3. 一致性:尽管强调了扩展性和性能,NewSQL仍然坚持ACID事务特性,确保了数据的一致性和完整性。

  4. SQL兼容性:NewSQL数据库保留了SQL的使用习惯,这对于习惯了传统SQL数据库的开发人员来说是一个优点,因为不需要重新学习新的查询语言。

  5. 分布性:许多NewSQL解决方案采用了分布式架构,可以在多个节点之间复制和分区数据,从而提高可用性和容错能力。

NewSQL的目标市场主要是那些需要传统SQL数据库提供的强一致性和事务支持,但同时也需要NoSQL数据库提供的水平扩展能力的应用场景。NewSQL的例子包括但不限于TiDB(主流)、CockroachDB、FoundationDB等。

由于NewSQL是一个相对较新的概念,并且随着技术的不断发展,NewSQL数据库的具体实现和技术细节可能会有所不同。

在这里插入图片描述

TiDB

TiDB(Ti代表Titanium)是一款开源的分布式关系型数据库,它支持 SQL 语法,并兼容 MySQL 协议。TiDB 的设计目标是提供水平可扩展性、强一致性的事务处理、在线分析处理(OLAP)和在线事务处理(OLTP)的混合工作负载支持,以及高可用性。TiDB 采用了分布式架构,主要由以下几个组件构成:

TiDB 主要组件

  1. TiDB Server (TiDB)

    • 功能:作为 SQL 查询的入口点,处理 SQL 请求,执行 SQL 查询逻辑,并返回结果给客户端。
    • 角色:相当于 MySQL 中的 MySQL Server,负责处理客户端请求、执行 SQL 语句以及返回结果。
  2. TiKV

    • 功能:是一个分布式的 Key-Value 存储系统,用于存储数据。
    • 角色:类似于 NoSQL 数据库,但它支持事务处理和一致性协议(如 Raft)来保证数据的强一致性。
    • 特点:TiKV 是一个独立的项目,可以与其他系统集成使用。
  3. PD (Placement Driver)

    • 功能:是一个调度和管理组件,负责集群范围内的元数据管理,包括存储节点的状态管理、调度决策等。
    • 角色:类似于 ZooKeeper,用于管理集群状态和调度。
  4. TiFlash(可选):

    • 功能:是一个可选组件,为 TiDB 提供了列式存储的能力,可以加速 OLAP 查询。
    • 角色:TiFlash 可以与 TiKV 集成,使 TiDB 同时支持 OLTP 和 OLAP 工作负载。

特点

  • 水平可扩展性:TiDB 设计为水平可扩展,可以通过增加更多的 TiKV 节点来扩展存储容量和吞吐量。
  • 强一致性:通过 Raft 协议保证数据的一致性和可靠性。
  • 高可用性:即使部分节点失败,系统仍然可以继续正常工作。
  • SQL 兼容性:支持 SQL 语法,与 MySQL 协议兼容,使得迁移和使用变得更加容易。
  • 混合事务处理(HTAP):支持同时处理 OLTP 和 OLAP 工作负载,无需在不同的数据库之间切换。
  • 分布式事务:支持多行事务处理,确保数据操作的原子性、一致性、隔离性和持久性(ACID)。

使用场景

TiDB 适用于需要高可用、强一致性的分布式数据库场景,尤其是那些需要水平扩展能力和混合事务处理能力的应用,例如:

  • 金融行业:处理高频交易、实时结算等。
  • 电子商务:支持高并发的购物车、订单处理等。
  • 物联网:存储和处理大量的传感器数据。
  • 大数据分析:结合 TiFlash 进行实时分析和报表生成。

安装与部署

TiDB 的安装和部署相对简单,可以通过官方文档提供的指南来进行。一般而言,安装 TiDB 需要先安装 PD、TiKV、TiDB 以及可选的 TiFlash 组件。这些组件可以通过二进制包、Docker 容器或者 Kubernetes 部署。

推荐阅读

TIDB简介及TIDB部署、原理和使用介绍

相关文章:

【架构】NewSQL

文章目录 NewSQLTiDBTiDB 主要组件特点使用场景安装与部署 推荐阅读 NewSQL NewSQL是一种数据库管理系统(DBMS)的类别,它结合了NoSQL数据库的可扩展性和传统SQL数据库的事务一致性。具体来说,NewSQL数据库旨在解决传统关系型数据库在处理大规模并发事务…...

禁止吸烟监测系统 基于图像处理的吸烟检测系统 YOLOv7

吸烟是引发火灾的重要原因之一。烟头在未熄灭的情况下,其表面温度可达200℃-300℃,中心温度甚至能高达700℃-800℃。在易燃、易爆的生产环境中,如化工厂、加油站、仓库等,一个小小的烟头就可能引发灾难性的火灾,造成巨…...

《中国工程科学》

《中国工程科学》为工程科技战略咨询学术期刊,主要发布我国工程科技战略咨询研究成果,以及工程科技各领域前瞻性综合研究成果,为政府科学决策提供参谋、为行业科学发展提供指导、为相关学术研究提供参考。 一、2024年度征稿主题 本刊以专题…...

碳钢液动紧急切断阀QDY421F-16C DN200

在深入探讨碳钢液动紧急切断阀QDY421F-16C DN200的卓越性能与应用场景时,不得不提及其在化工、石油、天然气等高危行业中的核心地位。这款阀门以其高度的自动化控制能力和快速响应机制,成为了保障生产安全、防止介质泄漏的关键防线。 其内置的液动执行机…...

【C++】红黑树的封装——同时实现map和set

目录 红黑树的完善默认成员函数迭代器的增加 红黑树的封装红黑树模板参数的控制仿函数解决取K问题对Key的非法操作 insert的调整map的[]运算符重载 在list模拟实现一文中,介绍了如何使用同一份代码封装出list的普通迭代器和const迭代器。今天学习STL中两个关联式容器…...

Tableau|一入门

一 什么是BI工具 BI 工具即商业智能(Business Intelligence)工具,是一种用于收集、整理、分析和展示企业数据的软件系统,其主要目的是帮助企业用户更好地理解和利用数据,以支持决策制定。 主要功能: 1.数据…...

Android 12系统源码_输入系统(三)输入事件的加工和分发

前言 上一篇文章我们具体分析了InputManagerService的构造方法和start方法,知道IMS的start方法经过层层调用,最终会触发Navite层InputDispatcher的start方法和InputReader的start方法。InputDispatcher的start方法会启动一个名为InputDispatcher的线程&…...

【Elasticsearch系列廿二】特殊参数

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Java笔试面试题AI答之设计模式(2)

文章目录 6. 什么是单例模式,以及他解决的问题,应用的环境 ?解决的问题应用的环境实现方式 7. 什么是工厂模式,以及他解决的问题,应用的环境 ?工厂模式简述工厂模式解决的问题工厂模式的应用环境工厂模式的…...

54 循环神经网络RNN_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录循环神经网络使用循环神经网络的语言模型困惑度(perplexity)梯度剪裁 循环神经网络 使用循环神经网络的语言模型 输入“你”,更新隐变量,输出“好”。 困惑度(perplexity&#xff…...

数据仓库-数据质量规范

一、 数据质量系统概述 1.1 数据质量管理系统1.2 数据质量建设流程1.3 数据质量标准二、 数据质量管理规则 2.1 数据校验规则列表 2.1.1 数据量2.1.2 数据量对比2.1.3 空值检查2.1.4 值域检查2.1.5 规范检查2.1.6 逻辑检查2.1.7 重复数据检查2.1.8 及时性检查...

PostgreSQL 17 发布了!非常稳定的版本

📢📢📢📣📣📣 作者:IT邦德 中国DBA联盟(ACDU)成员,10余年DBA工作经验, Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主,全网粉丝10万 擅长主流Oracle、My…...

【Python】执行脚本的时,如何指定运行根目录,而不是指定脚本的父级目录

author: jwensh & gpt date: 2024.09.23 python 执行脚本的时,如何指定运行根目录,而不是指定脚本的父级目录 prompt:python 执行脚本的时候,如何指定他的运行根目录,而不是指定脚本的父级目录 在执行 Python 脚…...

JVM(HotSpot):程序计数器(Program Counter Register)

文章目录 一、内存结构图二、案例解读三、工作流程四、特点 一、内存结构图 二、案例解读 我们使用javap对字节码进行反编译,来看下程序计数器怎么体现的。 IDEA写一个简单的Java代码 反编译命令 javap -verbose InitTest.class $ javap -verbose InitTest.clas…...

等保托管怎么样,流程是什么样的?

随着信息技术的快速发展,网络安全问题愈发凸显。为了保护信息系统的安全,国家推出了网络安全等级保护制度(简称“等保”),企业在面对这一制度的同时,也逐渐意识到等保托管的重要性。等保托管旨在通过专业的…...

【HTML】img标签和超链接标签

文章目录 img 标签src 属性alt 属性title 属性width/height 属性border 属性 超链接标签:a表格标签合并单元格 img 标签 img 是一个单标签 src 属性 img 标签必须搭配 src 使用(指定图片的路径) 相对路径: ./xxx.png./img/xxx.…...

智能PPT行业赋能用户画像

智能PPT市场在巨大的需求前景下,已吸引一批不同类型的玩家投入参与竞争。从参与玩家类型来看,不乏各类与PPT创作有关的上下游企业逐步向智能PPT赛道转型进入,也包括顺应生成式AI技术热潮所推出的创业企业玩家。当前,智能PPT赛道发…...

学习C++的第七天!

1.虚函数是在基类中用 virtual 关键字声明的函数,可以在派生类中被重写。纯虚函数是在虚函数的基础上,在基类中被初始化为 0 的函数,含有纯虚函数的类是抽象类,不能被实例化。 2.如果基类的析构函数不是虚函数,当通过…...

Java编程必备:五大高效工具与框架

作为一位Java程序员,在编写Java代码时,通常会使用多种工具和框架来提高开发效率、保证代码质量并简化开发流程。以下是五个常用的Java程序员工具和框架及其简要说明: 1. IntelliJ IDEA 主要功能:IntelliJ IDEA是一个强大的Java集…...

现代桌面UI框架科普及WPF入门1

现代桌面UI框架科普及WPF入门 文章目录 现代桌面UI框架科普及WPF入门桌面应用程序框架介绍过时的UI框架MFC (Microsoft Foundation Class)缺点 经典的UI框架**WinForms****QT****WPF** 未来的UI框架**MAUI****AvaloniaUI** WPF相对于Winform,QT,MFC的独立…...

实时手机检测-通用效果对比:YOLOv5s/v8n/DAMOYOLO-S三模型同图评测

实时手机检测-通用效果对比:YOLOv5s/v8n/DAMOYOLO-S三模型同图评测 1. 引言:为什么需要更好的手机检测模型? 想象一下,你正在开发一个智能会议室管理系统,需要自动检测参会者是否在会议期间违规使用手机。或者&#…...

蹲实验室折腾了两天FPGA终于把BISS-C协议编码器的坑填了。这次实现的Verilog方案有点意思,直接上硬货说说实现要点

雷尼绍BISS-C协议编码器verilog源码,支持18/26/32/36bit配置(也可以方便改成其他非标配置),支持最高10M时钟频率,由于是用FPGA纯verilog编写, 1)方便移植部署 2)可以支持多路编码器同时读取 3)成功在板卡跑…...

AndroidTVLauncher自定义功能卡片开发:FunctionCardPresenter实现原理与实践

AndroidTVLauncher自定义功能卡片开发:FunctionCardPresenter实现原理与实践 【免费下载链接】AndroidTVLauncher This is a leanback style tv launcher(minSdkVersion 17) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidTVLauncher AndroidTVLaunch…...

Whisper-large-v3企业实操:金融电话录音合规审查自动化流水线

Whisper-large-v3企业实操:金融电话录音合规审查自动化流水线 作者:by113小贝 | 10年AI语音技术实战经验 1. 项目背景与价值 金融行业的电话录音合规审查一直是个让人头疼的问题。传统的人工审查方式效率低下,一个审查员每天最多处理几十通录…...

前端 跨域解决方案

一、什么是跨域? 协议、域名、端口 三者有任意一个不一样,就是跨域。 浏览器出于安全考虑,会限制跨域请求,这就是同源策略(Same-Origin Policy)。 举例: https://www.baidu.com协议:…...

ASCII码表深度解析:从基础到扩展的全面指南

1. ASCII码的前世今生:计算机世界的通用语言 第一次接触ASCII码是在大学计算机基础课上,教授用"65A"这个简单公式瞬间点燃了我的好奇心。这个看似简单的编码系统,实际上是现代数字通信的基石。ASCII(American Standard …...

Unity 2021/2019 项目里用 NModbus4.dll 搞定 Modbus TCP 通信(附测试工具和避坑指南)

Unity工业通信实战:用NModbus4实现Modbus TCP全流程开发指南 当游戏引擎遇上工业协议,会碰撞出怎样的火花?三年前接手一个智能制造培训项目时,我首次尝试在Unity中集成Modbus通信。原以为简单的协议对接,却因线程冲突导…...

构建专属数字分身:Duix-Avatar本地化部署与应用全指南

构建专属数字分身:Duix-Avatar本地化部署与应用全指南 【免费下载链接】Duix-Avatar 项目地址: https://gitcode.com/GitHub_Trending/he/Duix-Avatar 在数字化时代,拥有一个能够自主生成视频内容的AI助手已成为提升创作效率的关键。Duix-Avatar…...

如何解决OpenCode在开发大型项目时的“特性丢失”与“特性退化”问题?

你遇到的情况在大型项目中使用 AI 编程助手时非常典型。随着项目规模扩大,AI 生成的代码容易出现“特性退化”和“特性丢失”,核心原因在于上下文窗口有限、模型对项目全局理解不足、以及缺乏稳定的开发规范约束。针对 OpenCode 这类 AI 编程助手&#x…...

零宽度字符隐写术全解析:从Unicode原理到实战检测工具推荐

零宽度字符隐写术全解析:从Unicode原理到实战检测工具推荐 在数字信息安全的隐秘角落,有一种几乎不可见的通信方式正在被安全研究人员和渗透测试工程师频繁使用——零宽度字符隐写术。这种技术允许我们将秘密信息嵌入普通文本中,肉眼无法察觉…...