Quantcast
Channel: 数据库内核月报
Browsing index pages (739 articles)
↧

Image may be NSFW.
Clik here to view.

白话 MySQL Online DDL 3: INT 列转 BIGINT,从 Online 到 Instant

背景 在上一篇文章《白话 MySQL Online DDL 2》中,笔者从代码层面梳理了 MySQL DDL 的执行过程,并且在文章的最后留下了一个问题:INT 列转为 BIGINT 可以不锁表吗? 社区 MySQL 的答案并不理想。虽然 INT 的所有取值都可以使用 BIGINT 表示,整个转换过程不会发生数据溢出,但是社区 MySQL 仍然只能使用 Copy DDL。Copy DDL 会在...

View Article


Image may be NSFW.
Clik here to view.

浅析 mysql binlog 提交流程

背景介绍 binlog介绍 Binlog (Binary log)是 MySQL Server 层维护的一种二进制日志,以事务级别记录了对数据库的所有修改操作。 事务级别是指:一个事务的日志,是在事务提交时被写入 binlog 文件中的。具体来说,事务在执行过程中,会不断的生成 binlog events,暂存在 session 级别的 binlog cache 中;事务提交时,会一次将...

View Article


PostgreSQL HeapTable + Pin vs MySQL InnoDB IOT + Persist cursor

前面介绍过 PostgreSQL Buffer Access 5 Rules 里面的 Pin 机制, 其实 HeapTable + Pin 机制还带来了其他和 InnoDB 的区别. InnoDB Persist cursor 是用来保留查询遍历 btree 过程中 index tree cursor 的位置. 为什么需要 persist cursor? 因为有多种场景下, 比如在执行大查询时,...

View Article

PostgreSQL Buffer Access 5 Rules

src/backend/storage/buffer/README 是 PG 社区维护 buffer manager 的官方设计文档. 它在开头列了 5 条 buffer access rules, 提 patch / review 时直接引用. 这 5 条规则合起来定义了 PG 的 Pin 协议, 也是 PG 和 InnoDB buffer manager 设计上真正分叉的地方. 同步原语先看清楚...

View Article

MySQL/PostgreSQL Slot-based Buffer Manager Pin/buf_block_fix operator

在 MySQL/PostgreSQL Buffer Pool 里面有一个 Pin 操作 — PostgreSQL 叫 Pin, MySQL InnoDB 叫 buf_block_fix / io_fix. 这些操作本质上都是把一个 page “pin” buffer pool 的某个位置上. 为什么在其他系统里很少见到这种代码? 答案是 PG 和 InnoDB 的 buffer pool...

View Article


Image may be NSFW.
Clik here to view.

一站式智能检索:PolarDB AutoETL 实现自动数据流转

背景 PolarSearch 是阿里云基于自研高性能存储底座 PolarStore 打造的一站式分布式数据检索与分析引擎,全面兼容 Elasticsearch 与 OpenSearch 生态,无缝融入现有技术栈。面向海量数据场景,PolarSearch 提供企业级的高可用性、极致查询性能与开箱即用的智能检索能力,助力业务快速构建实时搜索与分析服务。 其核心优势包括: 高可用与弹性伸缩...

View Article

PolarDB-PG 如何用研发自测系统守护数据库内核稳定性

数据库是企业数据的基石,而内核稳定性则是这块基石的地基。地基不稳,上层建筑再华丽也经不起风雨。本文将介绍阿里云 PolarDB PostgreSQL 版(下文简称 PolarDB-PG)研发团队如何从零构建一套研发自测系统,在日常开发过程中持续发现并修复内核缺陷,将产品故障率降低了一个数量级。 1. 为什么数据库需要”研发自测”? 1.1 测试是数据库的生命线...

View Article

Image may be NSFW.
Clik here to view.

MySQL复制延迟终结者:AliSQL 高效AI诊断和四大内核级优化

复制延迟问题 对于MySQL数据库来说,搭建主备架构增强可用性,搭建只读实例增强扩展性,都是刚需中的刚需;这二者都依赖于 MySQL 基于 Binlog 的逻辑复制。 在MySQL中,主库会以事务维度,将被修改的所有数据记录到 Binlog 中,并传输到从库;从库收到 Binlog...

View Article


Image may be NSFW.
Clik here to view.

大事务实时应用

MySQL使用的是逻辑复制,一个事务在主库执行结束后,会发送事务产生的binlog events到备库应用,进而保证主备的一致性。 在这种架构下,对于耗时长的大事务,会导致备库有显著的复制延迟。 逻辑复制的复制延迟可以大略分为两块:binlog events传输时间 + 备库事务回放时间。对于大事务,产生的binlog...

View Article


Image may be NSFW.
Clik here to view.

MySQL 遇见 DuckDB V2

MySQL DuckDB 引擎的产品形态演进 RDS MySQL 将 DuckDB 嵌入到 MySQL 内核,利用 DuckDB 在分析查询场景下的性能优势,弥补了 MySQL 在 AP(分析处理)能力上的不足。 在产品定位上,我们从立项之初就明确了“MySQL 为主、DuckDB 为辅”的策略:以 DuckDB 增强 MySQL 的分析能力,并围绕 MySQL...

View Article

Image may be NSFW.
Clik here to view.

聊聊数据库跨地域

需求 随着国际业务的普及,以及对服务实时性和数据安全性的要求日益增强,越来越多的业务需要跨地域提供服务,作为其数据基座的数据库,也遇到了越来越多的跨地域部署的需求。在PolarDB MySQL GDN(Global Database Network)[1]的维护和开发过程中,我们也与很多客户讨论过数据库的跨地域部署。总结起来,主要包括两个方面:...

View Article

Image may be NSFW.
Clik here to view.

PolarDB Mysql · 新功能特性 · groupby/orderby消除

前提条件 集群版本需为PolarDB MySQL引擎8.0版本,Revision version为8.0.2.2.33及以上 您可以通过查询版本号确认集群版本。 背景信息 在 SQL 查询执行过程中,groupby 算子通常通过排序或哈希去重实现,带来显著的 CPU 和内存开销。然而,在某些情况下,即使未显式去重,查询结果也天然具有唯一性(如主键关联、函数依赖等)。 本优化功能利用...

View Article

PolarDB Mysql · 新功能特性 · join消除

概述 JOIN 是关系数据库中最基本的操作之一。根据类型的不同,可以将 JOIN 分为 INNER JOIN、OUTER JOIN,OUTER JOIN 可以进一步分为 LEFT OUTER JOIN、RIGHT OUTER JOIN 和 FULL OUTER JOIN。 对于 INNER JOIN,MySQL 中的优化器已有的优化方式是通过 greedy search 找到较优的 JOIN...

View Article


浅析Xtrabackup备份工具

引言 在MySQL数据库运维过程中,为保证业务的完整性,经常需要对数据库进行备份。虽然mysqldump是最常用的逻辑备份工具,但在面对TB级大表或需要不停机备份的场景时,其存在较明显的性能瓶颈。 针对这种备份场景,一种更高效的解决方案是使用热备份工具,即Percona XtraBackup,对MySQL数据库的全量备份和增量备份。 本文将带你全面了解...

View Article

Image may be NSFW.
Clik here to view.

PolarDB Mysql OR表达式转Union All

引言 PolarDB Mysql版支持OR子句/IN-List表达式转UNION ALL的查询优化功能,能够在生成计划期间尝试将合适的OR子句/IN-List转换成UNION ALL形式,再进行基于代价的路径选择,得到更优的执行计划。 背景...

View Article


Image may be NSFW.
Clik here to view.

庖丁解InnoDB之Lock

隔离性(Isolation)是关系型数据库非常重要的特性。顾名思义,隔离性是要对并发运行在数据库上的事务做隔离,其本质是在数据库并发性能和事务正确性之间做权衡,为此数据库通常会提供不同程度的隔离级别供用户选择。而并发控制,就是保证不同隔离级别正确性的内部实现机制。Lock是现代数据库,尤其是单机数据库中最常见的并发控制手段,InnoDB采用的就是基于Lock的并发控制。本文将介绍InnoDB所支持的...

View Article

Image may be NSFW.
Clik here to view.

RDS MySQL:DDL实时应用功能

MySQL使用的是逻辑复制,一个事务在主库执行结束后,会发送事务产生的Binlog event到备库应用,进而保证主备的一致性。 在这种架构下,对于耗时长的DDL,会导致备库有显著的复制延迟。 逻辑复制的复制延迟可以大略分为两块:Binlog event传输时间 + 备库事务回放时间。对于DDL,仅产生一个Gtid_log_event和一个Query_log_event,传输量少,Binlog...

View Article


Image may be NSFW.
Clik here to view.

浅析 DuckDB 的内存管理

浅析 DuckDB 的内存管理 1 Introduction DuckDB 是一个开源、列存、面向分析型查询的嵌入式数据库。与传统数据库不同,DuckDB 可以以库的形式直接嵌入应用程序中,极大降低了部署复杂度,能够很好地适用于轻量级分析场景。 在 DuckDB 的 In-File 模式下,所有数据通常默认存储于单个数据库文件中。用户也可以通过 ATTACH 命令显式加载额外的...

View Article

Image may be NSFW.
Clik here to view.

MySQL 8.0 SQL Iterator

概述 MySQL 8.0 使用 Iterator 作为查询执行框架的核心。Iterator 模式提供了统一的接口来处理各种数据访问和加工操作,使得查询执行引擎具有更好的可扩展性、可维护性。本文档基于8.0.43 详细分析 MySQL 中各种 Iterator 的实现、使用场景和执行流程。 Iterator 概览 Iterator 使用场景对照表 Iterator 类型 主要功能 典型 SQL 场景...

View Article

Image may be NSFW.
Clik here to view.

PolarDB-PG 实时物化视图如何支持 outer join

写在前面: 本文将介绍 PolarDB PG 如何在现有的实时物化视图框架中支持 outer join 算子。 内容主要聚焦于原理部分,背景和具体实现细节将不再展开。 基本原理参考如下论文和技术报告: 论文:https://www.cs.columbia.edu/~jrzhou/pub/OJViewMaintenance.pdf...

View Article
Browsing index pages (739 articles)


Latest Images