Quantcast
Channel: 数据库内核月报
Browsing all 689 articles
Browse latest View live

Image may be NSFW.
Clik here to view.

PolarDB · 功能特性 · 嵌套子查询优化的性能分析

背景...

View Article


Image may be NSFW.
Clik here to view.

PolarDB MySQL 大表实践-分区表篇

#背景:分区表到底是什么?...

View Article


Image may be NSFW.
Clik here to view.

MySQL内存分配与管理(1)

MySQL的内存分配、使用、管理的模块较多,本篇文章主要针对InnoDB的内存管理、SQL层内存分配管理器MEM_ROOT和8028内存限制的新特性进行分析,同时对现阶段存在的部分问题和优化方案进行简单的描述。代码版本主要基于8025,第四部分内存限制新特性基于8028。 一、InnoDB基础内存申请 1.1 ut_allocator...

View Article

Image may be NSFW.
Clik here to view.

PolarDB MySQL 新特性 - Partial Result Cache

背景 查询缓存(Query Cache)是数据库执行层的一个加速查询的特性,用来缓存一条查询语句的结果集,如果后续再有相同的查询,直接从结果集缓存中读取结果,而不用再重新执行而极大提升查询性能。 官方MySQL在4.0版本就引入了Query Cache,但由于设计缺陷,在最新8.0版本移除了该功能。针对MySQL原生Query Cache的不足,PolarDB进行重新设计和全新实现,推出了Fast...

View Article

Image may be NSFW.
Clik here to view.

MySQL Temporal Data Types

前言 日常工作中,我们会经常遇到日期和时间这类数据,MySQL有对应的数据类型来存储,分别是DATE,TIME,DATETIME,TIMESTAMP和YEAR,这些数据类型统称为temporal数据类型。 MySQL在文档 https://dev.mysql.com/doc/refman/8.0/en/date-and-time-types.html...

View Article


Image may be NSFW.
Clik here to view.

Innodb 中的 Btree 实现 (一) · 引言 & insert 篇

本文内容基于 MySQL Community 8.0.13 Version 1 背景 Btree 自 1970 年 Bayer 教授提出后,一直是关系型数据库中核心数据结构,基于多路的分叉树,将数据范围自上而下不断缩小,直到需要的记录,通常在数据库中一个 Btree 结点能展开几百上千个分叉,数据的搜索范围呈指数级下降,极大地减少了数据访存次数,提升搜索效率。对于 B-tree...

View Article

MySQL · 业务场景 · 业务并发扣款,金额未扣

业务背景 账务系统的业务中从用户账号扣款,如果发现用户账户余额充足情况下,100次扣款数据库都返回成功,但其中有20次没有真实扣款,那业务方一定会震惊。但如果业务设计不合理,数据库中是会存在这种现象的。 数据库场景 在MySQL中看下面一个场景。 业务中存在一张用户账户表,存有用户的账户金额。业务表做了如下设计。业务中使用RC隔离级别。 CREATE TABLE `user_account` (...

View Article

Image may be NSFW.
Clik here to view.

PolarDB MySQL · 功能特性 · Fast Query Cache技术详解与最佳实践

PolarDB MySQL在2020年推出了Fast Query Cache(查询结果缓存),且在PolarDB MySQL各个大版本(5.6 5.7 8.0)中均已支持。Fast Query...

View Article


Image may be NSFW.
Clik here to view.

PolarDB MySQL · 功能特性 · 大表分页查询优化

在社区MySQL中,业务如果对大表做深度分页查询往往性能很差,查询的响应时间很难满足业务的需求。PolarDB MySQL对深度分页场景优化,可以极大提升分页查询性能。 社区MySQL深度分页 我们基于TPCH(Scale 10)的表举例,比如业务对订单明细表(lineitem表)按照特定发货日期(l_shipDATE列)范围查询订单明细信息。 如果100行每页,我们查询1万页以后的查询如下:...

View Article


PolarDB MySQL · 功能特性 · SQL Trace

PolarDB MySQL最新引入了查询的执行计划和性能的监控工具SQL Trace。 在数据库使用过程中,面对负载的持续高位,我们可能会需要查看消耗负载比较大的TopSQL。当一条查询语句的性能突然下降,我们可能需要排查语句的执行计划是否变化,语句执行时扫描行数、物理IO读是否明显变化。现在基于PolarDB MySQL SQL...

View Article

Image may be NSFW.
Clik here to view.

PolarDB for MySQL 优化器查询变换系列 - IN-List 变换

引言 PolarDB mysql作为一款HTAP数据库,在复杂sql查询能力上有许多深入的优化工作,可以大大加速了查询的时延。具体优化工作比如并行能力,查询变换能力,优化器join order额外支持hash join&bush...

View Article

Image may be NSFW.
Clik here to view.

PolarDB IMCI 的 TopK 查询执行优化

背景 业务系统中普遍存在这样一种场景:根据给定条件筛选一批记录,这些记录按用户指定的条件排序,以分页的方式展示。例如,筛选出某个商家在售的商品,按商品销量排序,以分页的方式展示。 上述场景,反映在数据库上,往往以ORDER BY column LIMIT n, m这样的TopK查询实现。例如,假设业务系统中每页展示100条记录,可以通过ORDER BY column LIMIT 0,...

View Article

库表变更、加锁没审计?PolarDB MySQL 新功能 SQL Detail

PolarDB MySQL最新引入了库表变更、加锁操作的详细审计功能SQL Detail。 背景...

View Article


Image may be NSFW.
Clik here to view.

MySQL Binlog 源码入门

MySQL主从节点之间同步数据,备份点还原,会用到binary log,其负责记录数据更改的操作。因为Binlog在运用到数据页之前需要经过复杂的过程,没有redolog直接,所以性能比不上直接使用redo复制的方式(物理复制的优势),但是它也有不可或缺的作用。本文重点介绍MySQL Binlog的作用、记录的内容、组织结构、写入方式、主备复制等内容,基于MySQL...

View Article

Image may be NSFW.
Clik here to view.

PolarDB MySQL · 功能特性 · 大表扫描优化

背景 社区MySQL从5.1开始引入了插件式引擎体系结构,该结构MySQL的引擎非常便于扩展,使用户可以选择合适的存储引擎。但同时MySQL SQL层和引擎层的紧密融合的优化相对现代数据库则少很多,对于用户需要处理越来越多数据的场景需求,相关的优化缺失导致很多场景下性能成为瓶颈。为了能够加速用户查询,充分融合SQL层和引擎层的特性,PolarDB...

View Article


Image may be NSFW.
Clik here to view.

PolarDB MySQL的INTERVAL分区如何让DBA解放双手

作为大表的优化方案之一,分区表功能现在越来越受欢迎。PolarDB MySQL的分区表完全兼容MySQL官方的语法和功能,同时,PolarDB在功能和性能上做了很多的优化和增强(详情请参见PolarDB MySQL分区表概述)。 INTERVAL分区是什么...

View Article

Image may be NSFW.
Clik here to view.

Long-lived Transactions 产生的影响

背景 MVCC已经成为现代数据库解决高并发访问的关键技术;MVCC为用户提供了快读读取数据,同时也允许对冲突数据并发写入;其基原理是每次更新记录时创建一个新版本,而不是直接去覆盖旧版本。这样可以确保每个事务都只能访问到自己可以访问到的数据,这样就保持了其读取的数据始终是一致的。如果记录的版本数据不再被所有活跃的事务所需要,就可以将其清理掉,这样就可以保证数据库的容量在一个合理的范围之内。...

View Article


Image may be NSFW.
Clik here to view.

PolarDB auto_inc 场景性能优化之路

在数据库的使用场景中, 最常见的场景是并发插入或者导入数据场景, 在该场景中并不指定自增id, 由数据库自动生成自增id, 然后插入到数据库中, 因此我们也叫auto_inc 场景的数据插入. 典型的业务场景如: 游戏行业开服过程中的大批的登录注册场景, 电商活动中给商家后台推单场景等等. 我们看看PolarDB 是如何优化针对这种并发插入场景进行优化的. 背景知识: 在这种并发插入场景中,...

View Article

PolarDB MySQL · 持续补强的全局二级索引

继我们去年年底发布内核原生的全局二级索引(用户文档)以来,陆续有客户过来咨询和使用。目前已经有客户在生产实例上大规模使用全局二级索引(Global Secondary Index,下文用GSI代替),大大优化了分区表场景下不含分区键的Query/DML性能以及支持不含分区键的Unique...

View Article

PolarDB for MySQL 优化器查询变换系列 - 条件下推

背景 条件下推是数据库优化器查询变换中的一个重要规则,目的在于将上层查询的条件尽可能多的下推到下层,使得查询任务在尽可能早的阶段对数据进行过滤,从而减少后续查询计算的代价,大幅提升查询性能。 条件下推到derived table 基于以上目的,MySQL 8.0.22及之后的版本支持将条件下推到派生表(derived...

View Article
Browsing all 689 articles
Browse latest View live