- 基于MySQL 8.0.2代码对QC的使用与实现进行分享,介绍TaurusDB如何进行优化;Karmada Dashboard 是一款专为 Karmada 用户设计的图形化界面工具;华为云Serverless全新技能上线... 基于MySQL 8.0.2代码对QC的使用与实现进行分享,介绍TaurusDB如何进行优化;Karmada Dashboard 是一款专为 Karmada 用户设计的图形化界面工具;华为云Serverless全新技能上线...
- 1. MySQL并行复制方案演进MySQL的主备复制是基于binlog日志。早期版本中,只有单线程复制,即IO线程负责接收主库的binlog,并将其写入到备库的relay log中,SQL线程负责读取relay log中的event(日志事件),再在备库上进行回放。一般来说,主备之间的复制瓶颈在于SQL线程回放的速度比主库的写入速度慢,导致主备延迟过大,进而影响备节点数据的实时性和备节点的读... 1. MySQL并行复制方案演进MySQL的主备复制是基于binlog日志。早期版本中,只有单线程复制,即IO线程负责接收主库的binlog,并将其写入到备库的relay log中,SQL线程负责读取relay log中的event(日志事件),再在备库上进行回放。一般来说,主备之间的复制瓶颈在于SQL线程回放的速度比主库的写入速度慢,导致主备延迟过大,进而影响备节点数据的实时性和备节点的读...
- 一、背景介绍查询缓存(Query cache,简称QC)是一种数据库优化技术,用于存储查询结果,以便在相同查询再次执行时能够快速返回结果,而无需重新执行查询。MySQL也有QC对应实现,但因其实现存在并发性能差、缓存命中率低等问题,该特性在MySQL 5.7.20标记为不推荐使用,在MySQL 8.0.3里被删除。QC对于特定场景可以显著提升性能,TaurusDB保留QC并对其并发性能进行了... 一、背景介绍查询缓存(Query cache,简称QC)是一种数据库优化技术,用于存储查询结果,以便在相同查询再次执行时能够快速返回结果,而无需重新执行查询。MySQL也有QC对应实现,但因其实现存在并发性能差、缓存命中率低等问题,该特性在MySQL 5.7.20标记为不推荐使用,在MySQL 8.0.3里被删除。QC对于特定场景可以显著提升性能,TaurusDB保留QC并对其并发性能进行了...
- 1.背景介绍随着业务的扩展,表的数据量也会相应增加。当表数据量达到一定规模时,数据库查询性能会成为系统瓶颈。为了解决这一问题,社区MySQL提出了分区表的概念。分区表通过一个或者多个分区键,按照分区规则,将一个逻辑上的表分割成多个小的物理表。在查询时,MySQL能够根据查询条件,选择对应的一个或者几个分区进行扫描,从而提高查询性能和管理效率。当前,社区MySQL支持一级和二级分区,其中一级分... 1.背景介绍随着业务的扩展,表的数据量也会相应增加。当表数据量达到一定规模时,数据库查询性能会成为系统瓶颈。为了解决这一问题,社区MySQL提出了分区表的概念。分区表通过一个或者多个分区键,按照分区规则,将一个逻辑上的表分割成多个小的物理表。在查询时,MySQL能够根据查询条件,选择对应的一个或者几个分区进行扫描,从而提高查询性能和管理效率。当前,社区MySQL支持一级和二级分区,其中一级分...
- 一、什么是Optimizer TraceEXPLAIN命令可以帮助您查看语句的执行计划,包括是否进行了全表扫描还是索引扫描,以及表的连接顺序等。但是EXPLAIN仅展示结果,并没有真正告诉MySQL为什么这么做。尤其是在客户问题中,经常会遇到执行计划不是最优的情况,但仅根据EXPLAIN的结果,是没办法分析并说清楚为什么最终的执行计划是这样的。为了解决这个问题,MySQL提供了一项执行计划跟... 一、什么是Optimizer TraceEXPLAIN命令可以帮助您查看语句的执行计划,包括是否进行了全表扫描还是索引扫描,以及表的连接顺序等。但是EXPLAIN仅展示结果,并没有真正告诉MySQL为什么这么做。尤其是在客户问题中,经常会遇到执行计划不是最优的情况,但仅根据EXPLAIN的结果,是没办法分析并说清楚为什么最终的执行计划是这样的。为了解决这个问题,MySQL提供了一项执行计划跟...
- 1. 技术背景数据库压缩是一种数据管理技术,通过特定的压缩算法将数据库中的数据进行压缩,以减少存储空间占用,从而达到显著降低成本的效果。社区MySQL InnoDB的压缩功能主要针对长期存储的冷数据,对于频繁访问的热数据,由于可能带来高达50%的性能影响,因此在生产环境中应用较少。现有的压缩机制,如表压缩和页面压缩,难以在不影响业务正常运行的情况下,提供针对特定字段的自定义压缩方式的灵活性。... 1. 技术背景数据库压缩是一种数据管理技术,通过特定的压缩算法将数据库中的数据进行压缩,以减少存储空间占用,从而达到显著降低成本的效果。社区MySQL InnoDB的压缩功能主要针对长期存储的冷数据,对于频繁访问的热数据,由于可能带来高达50%的性能影响,因此在生产环境中应用较少。现有的压缩机制,如表压缩和页面压缩,难以在不影响业务正常运行的情况下,提供针对特定字段的自定义压缩方式的灵活性。...
- 1. 背景介绍用户在执行DDL(Data Definition Language,数据定义语言)操作的时候,如果目标表存在未提交的长事务或大查询,DDL将持续等待获取MDL-EXCLUSIVE(X)锁。在华为云TaurusDB中,由于MDL-X锁具有最高优先级,DDL在持续等待MDL-X锁的过程中,将阻塞目标表上所有的新事务,这将导致业务连接的堆积和阻塞,甚至可能会造成整个业务系统的崩溃。T... 1. 背景介绍用户在执行DDL(Data Definition Language,数据定义语言)操作的时候,如果目标表存在未提交的长事务或大查询,DDL将持续等待获取MDL-EXCLUSIVE(X)锁。在华为云TaurusDB中,由于MDL-X锁具有最高优先级,DDL在持续等待MDL-X锁的过程中,将阻塞目标表上所有的新事务,这将导致业务连接的堆积和阻塞,甚至可能会造成整个业务系统的崩溃。T...
- 1. 背景介绍为了满足数据库在高并发请求下的事务隔离性和一致性要求,TaurusDB使用MDL(metadata lock,元数据锁)机制来管理对数据库对象的并发访问。使用MDL可以避免以下几类问题的发生:1)读取结果的不一致性:在可重复读(Repeatable Read,简称RR)隔离级别下,一个事务中的第一次查询可能返回某些结果,但在第二次查询时,由于表被另一个事务删除,导致查询结果为空... 1. 背景介绍为了满足数据库在高并发请求下的事务隔离性和一致性要求,TaurusDB使用MDL(metadata lock,元数据锁)机制来管理对数据库对象的并发访问。使用MDL可以避免以下几类问题的发生:1)读取结果的不一致性:在可重复读(Repeatable Read,简称RR)隔离级别下,一个事务中的第一次查询可能返回某些结果,但在第二次查询时,由于表被另一个事务删除,导致查询结果为空...
- 1. 背景介绍在生产环境中,客户常对InnoDB表的物理文件管理机制存在疑惑,特别是关于表数据被大量删除时产生的碎片页问题。具体来说,当InnoDB表中的大量数据被删除时,原本连续存储的数据页之间会留下空闲页,这些空闲页就像碎片一样,使得表文件变得不再紧凑,我们称之为碎片页。那么,为什么InnoDB表数据被大量删除时会产生碎片页?碎片页能否被新插入的数据,或者被其他表复用呢?本文将通过深入剖... 1. 背景介绍在生产环境中,客户常对InnoDB表的物理文件管理机制存在疑惑,特别是关于表数据被大量删除时产生的碎片页问题。具体来说,当InnoDB表中的大量数据被删除时,原本连续存储的数据页之间会留下空闲页,这些空闲页就像碎片一样,使得表文件变得不再紧凑,我们称之为碎片页。那么,为什么InnoDB表数据被大量删除时会产生碎片页?碎片页能否被新插入的数据,或者被其他表复用呢?本文将通过深入剖...
- 1.背景介绍云上客户经常出现误删表、删库等操作。针对这类问题,业界普遍提供库表级恢复方案。首先,在后台将选中时间点的全量数据和增量数据恢复至一个临时实例,然后,自动导出用户需要恢复的表,再将这些表恢复至原实例,以此降低对原实例的影响。然而,为了确保数据完整性,这一过程通常涉及整个实例的完整恢复,较长的恢复时间导致客户对该方案不甚满意。尤其是当恢复的表数据量远小于整个实例时,如恢复3T实例中仅... 1.背景介绍云上客户经常出现误删表、删库等操作。针对这类问题,业界普遍提供库表级恢复方案。首先,在后台将选中时间点的全量数据和增量数据恢复至一个临时实例,然后,自动导出用户需要恢复的表,再将这些表恢复至原实例,以此降低对原实例的影响。然而,为了确保数据完整性,这一过程通常涉及整个实例的完整恢复,较长的恢复时间导致客户对该方案不甚满意。尤其是当恢复的表数据量远小于整个实例时,如恢复3T实例中仅...
- 背景介绍某一部分特定比例的客户群体,对数据库的读写性能要求并不高。相比之下,他们反而更关注数据写入磁盘时的压缩能力,通过减小存储空间,来降低数据库的使用成本。TaurusDB透明压缩特性就是通过在存储过程中引入轻微延迟,换取更小的存储空间,进而满足客户降低存储成本的需求。本文主要从透明压缩特性的使用开启方法、实现原理、性能优化以及性能影响评估等这几个方面来进行介绍。使用方法新实例的来源分为两... 背景介绍某一部分特定比例的客户群体,对数据库的读写性能要求并不高。相比之下,他们反而更关注数据写入磁盘时的压缩能力,通过减小存储空间,来降低数据库的使用成本。TaurusDB透明压缩特性就是通过在存储过程中引入轻微延迟,换取更小的存储空间,进而满足客户降低存储成本的需求。本文主要从透明压缩特性的使用开启方法、实现原理、性能优化以及性能影响评估等这几个方面来进行介绍。使用方法新实例的来源分为两...
- 1. 技术背景SaaS(Software as a Service,软件即服务)在云上部署,可以将分散的计算存储资源集中利用,并让原来的用户都到云上来共享这些资源。云服务厂商为此提供了一种解决方案,一个实例可支持多个租户的数据存储与访问,降低了SaaS和租户的使用成本。基于此,云厂商还需要提供资源隔离的能力,以确保SaaS租户的数据安全。为了满足这个需求,多租户技术应运而生。该技术旨在解决如... 1. 技术背景SaaS(Software as a Service,软件即服务)在云上部署,可以将分散的计算存储资源集中利用,并让原来的用户都到云上来共享这些资源。云服务厂商为此提供了一种解决方案,一个实例可支持多个租户的数据存储与访问,降低了SaaS和租户的使用成本。基于此,云厂商还需要提供资源隔离的能力,以确保SaaS租户的数据安全。为了满足这个需求,多租户技术应运而生。该技术旨在解决如...
- 1. 背景介绍元数据(Metadata)是用来描述数据的数据。如果没有元数据,我们就无法理解和使用数据库中存储的数据。数据字典(DD)是 MySQL 维护元数据的模块。然而,在实际操作中,MySQL 是通过表定义对象 TABLE 与存储引擎进行交互来处理表数据。每个TABLE内有一个handler,用于指示所使用的引擎对象。此外,TABLE对象还存储了操作数据的必备信息,如表及字段的特征、元... 1. 背景介绍元数据(Metadata)是用来描述数据的数据。如果没有元数据,我们就无法理解和使用数据库中存储的数据。数据字典(DD)是 MySQL 维护元数据的模块。然而,在实际操作中,MySQL 是通过表定义对象 TABLE 与存储引擎进行交互来处理表数据。每个TABLE内有一个handler,用于指示所使用的引擎对象。此外,TABLE对象还存储了操作数据的必备信息,如表及字段的特征、元...
- 1. 背景介绍数据库管理系统定期对数据进行备份,旨在防止因故障或错误导致的数据损坏,确保系统在发生突发事件后可以快速恢复。同时,还便于追踪历史版本,为数据库迁移和升级提供支撑。评估一个数据库系统的备份与恢复能力,备份时间和恢复时间是两个重要指标。备份时间代表完成整个备份过程所需的时间,较短的备份时间通常会减少对系统性能的影响;恢复时间则指从已备份数据中恢复数据到对外提供正常服务所需的时间,较... 1. 背景介绍数据库管理系统定期对数据进行备份,旨在防止因故障或错误导致的数据损坏,确保系统在发生突发事件后可以快速恢复。同时,还便于追踪历史版本,为数据库迁移和升级提供支撑。评估一个数据库系统的备份与恢复能力,备份时间和恢复时间是两个重要指标。备份时间代表完成整个备份过程所需的时间,较短的备份时间通常会减少对系统性能的影响;恢复时间则指从已备份数据中恢复数据到对外提供正常服务所需的时间,较...
- 一、背景MySQL 8.0版本引入了全局统一的数据字典(Data Dictionary, DD),通过集中、高效、事务性的方式管理元数据(如表、列、索引等定义),不仅简化了管理流程,也对性能和并发性有较大的帮助。此外,升级到MySQL 8.0版本后,当涉及数据库中元数据对象(如表、索引、视图或存储过程等)发生定义更改或者某些新特性涉及对系统表的修改等情况时,都可能需要更新数据字典以提供支持。... 一、背景MySQL 8.0版本引入了全局统一的数据字典(Data Dictionary, DD),通过集中、高效、事务性的方式管理元数据(如表、列、索引等定义),不仅简化了管理流程,也对性能和并发性有较大的帮助。此外,升级到MySQL 8.0版本后,当涉及数据库中元数据对象(如表、索引、视图或存储过程等)发生定义更改或者某些新特性涉及对系统表的修改等情况时,都可能需要更新数据字典以提供支持。...
上滑加载中