MySQL 并行复制方案演进历史及原理分析

有过线上 MySQL 维护经验的童鞋都知道,主从延迟往往是一个让人头疼不已的问题。不仅仅是其造成的潜在问题比较严重,而且主从延迟原因的定位尤其考量 DBA 的综合能力:既要熟悉复...

2024-01-24

MySQL 性能压测工具-sysbench,从入门到自定义测试项

sysbench是一个开源的、基于LuaJIT(LuaJIT 是 Lua 的即时编译器,可将代码直接翻译成机器码,性能比原生 lua 要高) 的、可自定义脚本的多线程基准测试工具,也是目前用得最多的 MyS...

2024-01-24

基于案例分析 MySQL Group Replication 的故障检测流程

故障检测(Failure Detection)是 Group Replication 的一个核心功能模块,通过它可以及时识别集群中的故障节点,并将故障节点从集群中剔除掉。如果不将故障节点及时剔除的话,一方面...

2024-01-24

XtraBackup 搭建从库的一般步骤及 XtraBackup 8.0 的注意事项

搭建从库,本质上需要的只是一个一致性备份集及这个备份集对应的位置点信息。之前介绍的几个备份工具( MySQL中如何选择合适的备份策略和备份工具 )均可满足。这里,我们重点看看...

2024-01-24

MySQL 官方出品,比 mydumper 更快的多线程逻辑备份工具-MySQL Shell Dump & Load

mysqldump 和 mydumper 是我们常用的两个逻辑备份工具。无论是 mysqldump 还是 mydumper 都是将备份数据通过 INSERT 的方式写入到备份文件中。恢复时,myloader( mydumper 中...

2024-01-24

一文说透 MySQL JSON 数据类型(收藏)

JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。相对字符类型,原生的 JSON 类型具有以下优势: 在插入时能自动校...

2024-01-24

使用 LOAD DATA LOCAL INFILE,sysbench 导数速度提升30%

最近给 sysbench 提了一个 feature(https://github.com/akopytov/sysbench/pull/450),支持通过 LOAD DATA LOCAL INFILE 命令导入压测数据。下面我们来具体看看这个 feature 的...

2024-01-24

MySQL 中如何归档数据

归档,在 MySQL 中,是一个相对高频的操作。它通常涉及以下两个动作: 迁移。将数据从业务实例迁移到归档实例。 删除。从业务实例中删除已迁移的数据。在处理类似需求时,都是开发...

2024-01-24

MySQL 中如何定位 DDL 被阻塞的问题

经常碰到开发、测试童鞋会问,线下开发、测试环境,执行了一个DDL,发现很久都没有执行完,是不是被阻塞了?要怎么解决?包括在群里,也经常会碰到类似问题:DDL 被阻塞了,如何找到阻塞它的...

2024-01-24

MySQL 分区表,为什么分区键必须是主键的一部分?

随着业务的不断发展,数据库中的数据会越来越多,相应地,单表的数据量也会越到越大,大到一个临界值,单表的查询性能就会下降。这个临界值,并不能一概而论,它与硬件能力、具体业务有关...

2024-01-24

MySQL中如何选择合适的备份策略和备份工具

数据库备份的重要性毋庸置疑,可以说,它是数据安全的最后一道防线。鉴于此,对于备份,我们通常会做以下要求: 多地部署 对于核心数据库,我们通常有两地三中心的部署要求。对于备份...

2024-01-24

MySQL中 VARCHAR 可设置的最大长度是多少?

在使用MySQL的过程中,在存储字符串时,大家或许都有过这样或那样的困惑,譬如:1. 对于固定长度的字符串,为什么推荐使用 CHAR 来存储?2. VARCHAR 可设置的最大长度是多少?3. 给定...

2024-01-24

Binlog分析利器-binlog_summary.py

Binlog中,除了具体的SQL,其实,还包含了很多有价值的信息,如, 事务的开始时间。 事务的结束时间。 事务的开始位置点。 事务的结束位置点。 操作的开始时间(一个事务通常会包含多个...

2024-01-24

Handler_read_*的总结

在分析一个SQL的性能好坏时,除了执行计划,另外一个常看的指标是"Handler_read_*"相关变量。 Handler_read_key Handler_read_first Handler_read_last Handler_read_next ...

2024-01-24

null调整为not null default xxx,不得不注意的坑

最近碰到一个case,值得分享一下。现象一个DDL,将列的属性从null调整为not null default xxx,alter table slowtech.t1 modify name varchar(10) not null default 'slowtec...

2024-01-24

MySQL 8 新特性之Clone Plugin

Clone Plugin是MySQL 8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为Group Replication服务。在Group Replication中,添加一个新的节点,差异数据的补齐是...

2024-01-24

使用MySQL,SQL_MODE有哪些坑,你知道么?

SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允许'0000-00-00'值。为什么需要关注SQL_MODE呢?首先,看...

2024-01-24

来,看看MySQL 5.6, 5.7, 8.0的新特性

对于MySQL的历史,相信很多人早已耳熟能详,这里就不要赘述。下面仅从产品特性的角度梳理其发展过程中的里程碑事件。1995年,MySQL 1.0发布,仅供内部使用。1996年,MySQL 3.11.1发布...

2024-01-24

MySQL 5.6中如何定位DDL被阻塞的问题

在上一篇文章《MySQL 5.7中如何定位DDL被阻塞的问题》中,对于DDL被阻塞问题的定位,我们主要是基于MySQL 5.7新引入的performance_schema.metadata_locks表。提出的定位方法,颇...

2024-01-24

MySQL 5.7中如何定位DDL被阻塞的问题

在上篇文章《MySQL表结构变更,不可不知的Metadata Lock》中,我们介绍了MDL引入的背景,及基本概念,从“道”的层面知道了什么是MDL。下面就从“术”的层面看...

2024-01-24

MySQL表结构变更,不可不知的Metadata Lock

在线上进行DDL操作时,相对于其可能带来的系统负载,其实,我们最担心的还是MDL其可能导致的阻塞问题。一旦DDL操作因获取不到MDL被阻塞,后续其它针对该表的其它操作都会被阻塞。典...

2024-01-24

升级MySQL5.7,开发不得不注意的坑

前段时间,将线上MySQL数据库升级到了5.7。考虑到可能产生的不兼容性,在升级之前,确实也是战战兢兢,虽然测试环境,开发环境早在半年前就已提前升级。基于前期的调研和朋友的反馈,与...

2024-01-24

利用MongoDB技术开发中遇到的数据复制冲突问题的解决方案探究

利用MongoDB技术开发中遇到的数据复制冲突问题的解决方案探究摘要:
在使用MongoDB的开发过程中,可能会遇到数据复制冲突的问题。这种问题在分布式环境中尤其常见,因为在多个节...

2024-01-24

利用MongoDB技术开发中遇到的数据删除问题的解决方案探究

利用MongoDB技术开发中遇到的数据删除问题的解决方案探究引言:
随着互联网和移动互联网的兴起,数据的管理变得愈发重要。在开发过程中,我们经常需要进行数据的添加、修改和删除...

2024-01-24

mysql query报错怎么解决

当MySQL查询报错时,可以通过以下步骤来解决问题:1. 仔细阅读错误信息:MySQL会提供详细的错误信息,包括错误类型、错误代码和错误描述。首先要仔细阅读错误信息,了解报错的原因和...

2024-01-24

SQL中distinct有什么用法

在SQL中,DISTINCT是用于查询结果中去除重复行的关键字。它可以应用于SELECT语句中的列,以返回唯一的值。下面我将详细介绍DISTINCT的用法和示例。DISTINCT的语法如下:SELECT DI...

2024-01-24

如何实现MySQL中修改表结构的语句?

如何实现MySQL中修改表结构的语句?MySQL 是一种流行的关系型数据库管理系统(RDBMS),用于存储和管理大量的数据。在实际的开发过程中,经常需要修改数据库表的结构,例如添加、修改、...

2024-01-24

mysql一直内存占用高

MySQL是一种常用的关系型数据库管理系统,但是在一些情况下,MySQL可能会出现内存占用高的现象。下面我们将为您介绍一些可能导致MySQL一直占用高内存的原因。1. 数据库配置不当...

2024-01-24

mysql服务器内存占用高怎么办?

当我们在使用MySQL服务器时,有时会遇到内存占用过高的情况,这个问题可能会导致服务器响应变慢或者崩溃,因此我们需要及时解决这个问题。首先,我们需要了解MySQL服务器内存占用高...

2024-01-24

mysql mid()

MySQL数据库中的MID()函数可以用于从一个字符串中取出指定的子串。MID()函数的语法如下:MID(str, start, length)参数说明: str:要取子串的字符串。 start:子串的起始位置。取值...

2024-01-24

如何实现MySQL中删除用户的语句?

如何实现MySQL中删除用户的语句?MySQL是一种流行的关系数据库管理系统,常用于存储和管理大量数据。在日常使用中,我们可能需要删除不再需要的用户。本文将介绍如何在MySQL中使...

2024-01-24

如何实现MySQL底层优化:执行计划分析和优化技巧

实现MySQL底层优化:执行计划分析和优化技巧引言在数据库应用程序的开发和运维中,针对MySQL数据库进行底层优化是非常重要的。MySQL执行计划分析和优化技巧可以帮助开发人员和...

2024-01-24

如何实现MySQL底层优化:表分区的应用和优势

如何实现MySQL底层优化:表分区的应用和优势随着大数据时代的到来,数据库的性能需求也越来越高。MySQL作为常用的关系型数据库,为了满足大规模数据存储和高并发访问的需求,提供了...

2024-01-24

如何实现MySQL中解锁表的语句?

如何实现MySQL中解锁表的语句?在MySQL中,表锁是一种常用的锁定机制,用于保护数据的完整性和一致性。当一个事务正在对某个表进行读写操作时,其他事务就无法对该表进行修改。这种...

2024-01-24

如何实现MySQL中表的备份和恢复的语句?

如何实现MySQL中表的备份和恢复的语句? -- 附具体代码示例引言:
在开发中,我们经常需要对MySQL中的表进行备份和恢复,以保证数据的安全性和可靠性。本文将介绍如何利用MySQL的语...

2024-01-24

利用Redis实现分布式全局ID生成

随着互联网的发展,分布式系统的应用场景越来越多,如何生成全局唯一的ID成为了一个非常重要的问题。传统的自增ID,由于单点数据源的限制,无法满足分布式系统的需要。利用Redis作...

2024-01-24

如何实现MySQL底层优化:日志系统的优化与性能提升

MySQL是目前最流行的关系型数据库管理系统之一,作为网站及应用程序后端的核心组件,其性能优化显得尤为关键。其中,日志系统是MySQL的重要组成部分,其性能对数据库的整体性能影响...

2024-01-24

如何实现MySQL底层优化:数据表的水平和垂直分割策略

如何实现MySQL底层优化:数据表的水平和垂直分割策略,需要具体代码示例引言:
在大型应用场景下,MySQL数据库经常面临着海量数据的存储和查询压力。为了解决这个问题,MySQL提供了数...

2024-01-24

如何实现MySQL底层优化:事务锁的高级性能优化和避免死锁的方法

如何实现MySQL底层优化:事务锁的高级性能优化和避免死锁的方法引言:
在数据库系统中,事务锁是保证数据一致性和并发访问的重要机制之一。然而,在高并发场景下,事务锁可能会导致性...

2024-01-24

如何实现MySQL底层优化:查询缓存的使用和性能分析

如何实现MySQL底层优化:查询缓存的使用和性能分析MySQL是一种常用的关系型数据库管理系统,在大数据量的场景下,优化数据库性能是非常重要的。其中,查询缓存是一个可以帮助提高My...

2024-01-24

如何实现MySQL中删除用户角色的语句?

如何实现MySQL中删除用户角色的语句?在MySQL中,我们可以通过使用GRANT和REVOKE语句来授予和撤销用户的角色权限。要删除用户角色,可以使用REVOKE语句来取消用户的特定角色权限...

2024-01-24

如何实现MySQL底层优化:数据备份和恢复的最佳实践

在数据库管理中,数据备份和恢复是极为重要的操作,因为它关乎着企业数据安全和业务持续性。MySQL作为一款十分流行的关系型数据库,自然也需要考虑如何实现数据备份和恢复的最佳...

2024-01-24

如何实现MySQL中授权用户角色的语句?

在MySQL数据库中,用户需要授予特定的权限来访问和操作数据库中的对象,例如表、视图、存储过程等等。对于大型数据库系统,管理和维护访问和权限变得非常困难,因此引入了用户角色...

2024-01-24

如何实现MySQL底层优化:SQL语句优化的常见技巧和原则

MySQL数据库作为一种常见的关系型数据库,随着数据库中数据量的增加和查询需求的变化,底层优化变得尤为重要。在进行MySQL底层优化的过程中,SQL语句优化是一项至关重要的工作。...

2024-01-24

如何实现MySQL中创建表的语句?

如何实现MySQL中创建表的语句?在MySQL数据库中,创建表是非常重要的操作之一。创建表的语句需要考虑到表的结构、字段类型、约束等各种因素,以确保数据存储的准确性和完整性。下...

2024-01-24

如何使用Redis实现用户登录状态管理

Redis是一种开源的内存数据库,它被广泛应用于缓存、会话管理和消息队列等领域。在Web开发中,用户登录状态管理是一个非常重要的功能,而Redis正是一个很好的选择来实现这一功能...

2024-01-24

如何实现MySQL底层优化:查询缓存的高级使用和性能分析

如何实现MySQL底层优化:查询缓存的高级使用和性能分析摘要:
MySQL是一款广泛使用的关系型数据库管理系统,它的查询缓存功能可以有效提升查询性能。本文将介绍MySQL查询缓存的高...

2024-01-24

如何实现MySQL中更新数据的语句?

如何实现MySQL中更新数据的语句?MySQL作为广泛使用的关系型数据库管理系统,提供了强大的功能来处理数据的更新。本文将详细介绍如何使用MySQL的更新语句来修改数据库中的数据,...

2024-01-24

如何实现MySQL中事务处理的语句?

如何实现MySQL中事务处理的语句?在数据库操作中,事务处理是非常重要的一部分,它可以确保一系列的操作要么全部执行,要么全部不执行。MySQL中的事务处理可以通过以下示例代码来实...

2024-01-24

如何实现MySQL底层优化:存储引擎的选择与性能对比

MySQL 是一种强大的开源关系型数据库,可用于各种规模的应用程序。MySQL 支持多种不同的存储引擎,如 MyISAM、InnoDB、Memory、CSV 等,不同的引擎具有不同的功能和性能特点。在...

2024-01-24
返回顶部
顶部