也知道是一款国人研发的数据库,但你知道TiDB到底是如何实现的?它跟其他数据库产品相比,它的核心优势是什么?此次夜校分享,xiaoyu向大家介绍了数据库发展史、TiDB 设计、架构及生态及TiDB在得物的应用。数据库技术发展演进**2008年以前**2008 年以前应用最为广泛的是单机关系型数据库(SQL),能很好的解决复杂的数据运算及表间处理,多用于银行、电信等传统行业复杂业务逻辑场景中,以 Oracle 为代表。此类数据库挑战在于成本高...
也知道是一款国人研发的数据库,但你知道TiDB到底是如何实现的?它跟其他数据库产品相比,它的核心优势是什么?此次夜校分享,xiaoyu向大家介绍了数据库发展史、TiDB 设计、架构及生态及TiDB在得物的应用。# 数据库技术发展演进**2008年以前**2008 年以前应用最为广泛的是单机关系型数据库(SQL),能很好的解决复杂的数据运算及表间处理,多用于银行、电信等传统行业复杂业务逻辑场景中,以 Oracle 为代表。此类数据库挑战在于成本...
# 简介众所周知,在数据库存储引擎侧通常有两类存储模型,行式存储NSM(N-ary Storage Model)和列式存储DSM(Decomposition Storage Model),两种存储模型各有其特定的擅长场景。在以前,主流存储设备是机械磁盘的情况... 行内记录逻辑地址),连续多行构成一个页,页的尾部通常会存储索引来解决record不定长时的快速查找问题,数据排列结构如下图所示:![image.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e16f7264796645db...
我们了解了物理复制和逻辑复制的区别,本章内容主要聚焦于逻辑复制的使用场景,当了解了适用场景后,会使得业务架构更加灵活。## 场景一:数据汇总与拆分当多个独立的业务库需要将数据汇总到数据仓库,以便于进行后续分析的场景,逻辑复制是非常适合的。一是不需要额外的组件来支撑,二是可以做到实时同步。对于数据拆分的场景,由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据库实例中。## 场景二:数...
我们了解了物理复制和逻辑复制的区别,本章内容主要聚焦于逻辑复制的使用场景,当了解了适用场景后,会使得业务架构更加灵活。## 场景一:数据汇总与拆分当多个独立的业务库需要将数据汇总到数据仓库,以便于进行后续分析的场景,逻辑复制是非常适合的。一是不需要额外的组件来支撑,二是可以做到实时同步。对于数据拆分的场景,由于逻辑复制的粒度可以到表级别,可以将一个数据库按照表的粒度拆分到不同的数据库实例中。## 场景二:数...
## 1. 什么是事务事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位(不可再进行分割),由一个有限的数据库操作序列构成(多个DML语句,select语句不包含事务),要不全部成功,要不全部不成功。如 A 给 B 要划钱,A 的账户-1000 元, B 的账户就要+1000 元,这两个 update 语句必须作为一个整体来执行,不然 A 扣钱了,B 没有加钱这种情况就是错误的。那么事务就可以保证 A 、B 账户的变动要么全部一起发生,要么全部一起不发生。##...
PostgreSQL 提供了逻辑流复制功能,至此,PostgreSQL 拥有了更加完备的数据同步方式,解决了物理流复制无法覆盖的一些场景。本章内容将介绍物理复制与逻辑复制的一些差别。## 参数配置差异我们知道在 PostgreSQL 中如果想要实施流复制,有一个非常重要的参数为 **wal_level** [1],这个参数确定了需要多少信息记录到 WAL 日志中。**wal_level** 有三个取值,区别如下:* minimal:不能通过基础备份和 WAL 日志恢复数据库* replica:...
称为HTAP数据库罢了。这么做的话数据仍然要存两份(row & column),管控面的麻烦从外部转移到内部而已,并没有什么实际的架构创新。**所以,本论文提出了一种新的想法,**不再“分而治之”,而是要构建一个统一的存储层... 以上述SQL为例,我们可以总结出以下几种逻辑代数的算子:1. **Bridge Operator**(笔者译:桥接算子):**该算子是用来做物理Tile和逻辑Tile的转换的。** 如上图最底层的操作,从Table(物理Tile)读出数据转为逻辑Tile...
> 更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 分析型数据库设计并发控制的主要原因是为了确保数据的完整性和一致性,同时提高数据库的吞吐量和响应速度。并发控制可以... TSO使用混合逻辑时钟,时钟由物理部分和逻辑部分组成,64位表示一个时间。为了避免TSO宕机导致的时间戳丢失,需要对时间戳持久化。但是如果每次授时都持久化将会降低性能,所以TSO会预申请一个可分配的时间窗口(例如3s...
用途以及实现原理,那可能认知就会比较模糊了,今天就跟大家一起,来清晰明了的介绍一下这些日志的核心思想和功能原理。## 1 binlog### 1.1 binlog 设计目标binlog 记录了对 MySQL 数据库执行更改的所有的写操作... 很多事务操作都是基于 SQL 逻辑记录,我们都知道一个 SQL 在不同的时间点执行它们产生的数据变化和影响是不一样的,所以这种情况下,数据同步或恢复的时候就容易出现不一致的情况。### 1.3 binlog 写入策略对于 I...
也采用列式存储设计,保证读写性能、支持事务一致性,又适用大规模的数据计算,为用户提供极速分析体验和海量数据处理能力,提升企业数字化转型能力。# 列式存储介绍分析型数据库中的列式存储,是一种数据库的物理存... ByteHouse 采用列存的方式,保证读写性能、支持事务一致性,又适用大规模的数据计算。### Data layout表数据物理上按 Partition Key 切分为多个 Parts 存储在统一的云存储的逻辑存储路径下,每个 Part 的大小有数...
我们设计了 Krypton(HSAP),系统的设计目标主要有几个点:1. 可伸缩。我们希望设计一款能够应对各种 Workload 的系统,对于不同的 Workload,系统的各个组件都可以自由的进行伸缩。2. 高并发低时延。为了应对线上... 这些 Pipe 的执行逻辑上不会阻塞。不同的 Pipe 之间通过一个 Local Exchanger 的算子连接起来,不同的 Pipe 可以设置不同的并发度。 **统计信息与 Query Cache**1. **Query Cache**1. **Cache Main...
# 前言在配置好逻辑复制之后,我们需要了解逻辑复制相关信息,如复制延迟,replication slot 相关位点信息。PostgreSQL 为我们提供了丰富的表/视图,方便我们进行监控。## 检查逻辑复制的基本配置信息在订阅端查看基... 可以和 pg_user 视图的 usesysid 字段关联查询属主的具体信息。* puballtables:是否发布数据库中的所有表,"t" 表示发布数据库中所有已存在的表和以后新建的表。* pubinsert:"t" 表示仅发布表上的INSERT操作。* ...