## 1. 什么是事务事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务),要不全部成功,要不全部不成功。如 A 给 B 要划钱,A 的账户-1000 元, B 的账户就要+1000 元,这两个 update 语句必须作为一个整体来执行,不然 A 扣钱了,B 没有加钱这种情况就是错误的。那么事务就可以保证 A 、B 账户的变动要么全部一起发生,要么全部一起不发生。##...
# 简介众所周知,在数据库存储引擎侧通常有两类存储模型,行式存储NSM(N-ary Storage Model)和列式存储DSM(Decomposition Storage Model),两种存储模型各有其特定的擅长场景。在以前,主流存储设备是机械磁盘的情况下,数据一般采用一个一个的数据块进行存储,利用顺序读写提升性能。行存的实现一般是将一行数据完整的从头到尾连续存储(超长的字段一般会单独存储,行内记录逻辑地址),连续多行构成一个页,页的尾部通常会存储索引来解决...
也知道是一款国人研发的数据库,但你知道TiDB到底是如何实现的?它跟其他数据库产品相比,它的核心优势是什么?此次夜校分享,xiaoyu向大家介绍了数据库发展史、TiDB 设计、架构及生态及TiDB在得物的应用。数据库技术发展演进**2008年以前**2008 年以前应用最为广泛的是单机关系型数据库(SQL),能很好的解决复杂的数据运算及表间处理,多用于银行、电信等传统行业复杂业务逻辑场景中,以 Oracle 为代表。此类数据库挑战在于成本高...
MySQL 数据库中的事务和存储过程是两个不同的概念,我将会分别解释这两个概念,然后提供一个简单的存储过程示例。1. **事务(Transaction)**:数据库事务是指一个或一组SQL语句的逻辑单元,这个逻辑单元中的操作要么全部执行,要么全部不执行。如果在执行过程中出现错误,那么事务将会回滚(Rollback),即撤销已经执行的操作;如果所有操作都成功执行,那么事务就会被提交(Commit),数据会被永久保存在数据库中。事务的主要特点是可以保证在...
MySQL 数据库中的事务和存储过程是两个不同的概念,我将会分别解释这两个概念,然后提供一个简单的存储过程示例。1. **事务(Transaction)**:数据库事务是指一个或一组SQL语句的逻辑单元,这个逻辑单元中的操作要么全部执行,要么全部不执行。如果在执行过程中出现错误,那么事务将会回滚(Rollback),即撤销已经执行的操作;如果所有操作都成功执行,那么事务就会被提交(Commit),数据会被永久保存在数据库中。事务的主要特点是可以保证在...
称为HTAP数据库罢了。这么做的话数据仍然要存两份(row & column),管控面的麻烦从外部转移到内部而已,并没有什么实际的架构创新。**所以,本论文提出了一种新的想法,**不再“分而治之”,而是要构建一个统一的存储层... 所以应该在执行引擎层和物理存储层之间加一层逻辑存储层,由抽象层来跟执行引擎层做整齐划一的交互。(笔者注,参考Linux内核VFS的思想,各种FS百花齐放,但是接了一层VFS,在抽象层做统一就可以了)这里的逻辑层指的就...
也知道是一款国人研发的数据库,但你知道TiDB到底是如何实现的?它跟其他数据库产品相比,它的核心优势是什么?此次夜校分享,xiaoyu向大家介绍了数据库发展史、TiDB 设计、架构及生态及TiDB在得物的应用。# 数据库技术发展演进**2008年以前**2008 年以前应用最为广泛的是单机关系型数据库(SQL),能很好的解决复杂的数据运算及表间处理,多用于银行、电信等传统行业复杂业务逻辑场景中,以 Oracle 为代表。此类数据库挑战在于成本...
# 前言在这篇文档中[1],我们了解了物理复制和逻辑复制的区别,本章内容主要聚焦于逻辑复制的使用场景,当了解了适用场景后,会使得业务架构更加灵活。## 场景一:数据汇总与拆分当多个独立的业务库需要将数据汇总到数据仓库,以便于进行后续分析的场景,逻辑复制是非常适合的。一是不需要额外的组件来支撑,二是可以做到实时同步。对于数据拆分的场景,由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据...
# 1、为什么要做数据库选型## 1.1、数据库选型的重要性与难点发展数字经济是当下各行各业的重要方向。支撑数字经济的底座是软件,特别是基础软件,可以说基础软件是整个数字经济的坚实底座。在基础软件领域,有三... 可以获得更强的数据库能力,也可以聘请更专业的DBA进行数据库维护,保障数据库系统稳定运行。企业组织中越是重要核心的数据库系统,会获得更多的资源投入。DBA,Database Administrator,是数据库管理员的简称。从名字...
## 分布式数据库架构简介![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9ca5ef2ef9af4cedb544547a86a09a3e~tplv-k3u1fbpfcp-5.jpeg?)相信对数据库感兴趣的同学对上面这张图也不会陌生。这... 数据库的计算引擎是用来处理计算逻辑和事务逻辑的,一些核心的模块包括:- 接入层- Query Engine- Buffer Pool- 日志子系统- 事务子系统- 锁子系统可以这么说,缺了上述任意一个模块都很难构建出...
PostgreSQL 提供了逻辑流复制功能,至此,PostgreSQL 拥有了更加完备的数据同步方式,解决了物理流复制无法覆盖的一些场景。本章内容将介绍物理复制与逻辑复制的一些差别。## 参数配置差异我们知道在 PostgreSQL 中如果想要实施流复制,有一个非常重要的参数为 **wal_level** [1],这个参数确定了需要多少信息记录到 WAL 日志中。**wal_level** 有三个取值,区别如下:* minimal:不能通过基础备份和 WAL 日志恢复数据库* replica:...
数据库技术一直是信息技术中极其重要的一环,在步入云原生时代后,云基础设施和数据库进一步整合,弥补了传统数据库的痛点,带来了高可扩展性、全面自动化、快速部署、节约成本、管理便捷等优势。从 2018 到 2021 年... 代理层主要负责数据库的一些接入工作,比如鉴权、流量染色、流量分发等;* **Database 层**:这一层部署着数据库的一些实例,通过数据库的 Binlog 实现数据的同步、高可用。整体来讲,第一代数据库系统架构以开源...
binlog 记录了对 MySQL 数据库执行更改的所有的写操作,包括所有对数据库的数据、表结构、索引等等变更的操作。> 注意:这其中不包含 SELECT、SHOW 等,因为对数据没有修改只要是对数据库有变更的操作都会记录到 ... 很多事务操作都是基于 SQL 逻辑记录,我们都知道一个 SQL 在不同的时间点执行它们产生的数据变化和影响是不一样的,所以这种情况下,数据同步或恢复的时候就容易出现不一致的情况。### 1.3 binlog 写入策略对于 I...