
MySQL
文章平均质量分 70
翔云123456
这个作者很懒,什么都没留下…
展开
-
binlog 解析工具——my2sql
my2sql是一款基于 Go 语言开发的 MySQL binlog 解析工具,支持从二进制日志(binlog)中生成原始 SQL、回滚 SQL(闪回 SQL)、去除主键的 INSERT SQL 等,还能生成 DML 操作统计信息。数据快速回滚(闪回):通过逆向解析 binlog 生成反向 SQL,恢复误删除或误修改的数据。主从数据一致性修复:主从切换后新主库数据丢失时,通过 binlog 恢复数据。生成标准 SQL 与统计信息:用于审计、数据迁移,或分析高频更新表、大事务及主从延迟问题。原创 2025-05-25 15:43:18 · 805 阅读 · 0 评论 -
binlog解析工具——binlog2sql
binlog2sql是一款开源的 Python 工具,用于解析 MySQL 的 binlog 文件,生成标准 SQL 或回滚 SQL,实现数据恢复和衍生功能。数据快速回滚(闪回):通过解析 binlog 生成反向 SQL,恢复误删除或误修改的数据。主从切换修复:当主从切换后新主库数据丢失时,通过 binlog 恢复数据一致性。生成标准 SQL:用于审计、数据迁移或分析数据库操作历史。原创 2025-05-25 13:05:32 · 640 阅读 · 0 评论 -
Buffer Pool如何进行预热
在 MySQL 中,Buffer Pool 预热(Warm-Up) 是指将数据库重启后需要高频访问的数据页提前加载到内存中,以减少冷启动时因磁盘 I/O 导致的性能下降原创 2025-04-27 07:00:00 · 604 阅读 · 0 评论 -
Buffer Pool是什么,有什么作用
在 MySQL 的 InnoDB 存储引擎中,Buffer Pool(缓冲池) 是 内存中的核心组件,负责缓存表数据、索引和其他 InnoDB 相关的数据结构。原创 2025-04-26 21:58:00 · 647 阅读 · 0 评论 -
聚簇索引是否会全部加载到内存
在 MySQL 的 InnoDB 存储引擎中,聚簇索引的数据不会全部加载到内存中。原创 2025-04-27 06:30:00 · 260 阅读 · 0 评论 -
关于聚簇索引
聚簇索引(Clustered Index)是 一种将数据行物理存储顺序与索引键值逻辑顺序紧密结合的索引结构。在 MySQL 的 InnoDB 引擎中,聚簇索引直接决定了表中数据的物理排列方式,因此每个表有且只有一个聚簇索引。原创 2025-04-26 21:53:45 · 333 阅读 · 0 评论 -
MySQL二进制日志格式有哪几种
在 MySQL 中,二进制日志(Binary Log)的格式决定了主库如何记录数据的变更事件,并直接影响复制的行为和一致性。通过合理选择二进制日志格式,可以优化 MySQL 的复制性能和数据一致性。如果对数据一致性要求极高,建议始终使用。:记录数据行的实际变更(修改前/后的行数据),而非 SQL 语句。等),从库通过重放这些 SQL 语句实现数据同步。以下是每种格式的详细说明及其事务的事件组成。二进制日志中会记录完整的 SQL 语句。:记录实际执行的 SQL 语句(如。的行数据变更前后的值(如旧值。原创 2025-03-18 22:50:11 · 1092 阅读 · 0 评论 -
为什么“连接断开可能导致锁未释放”
大多数情况下:数据库会在连接断开时自动释放锁,但需依赖数据库的实现和配置。极端场景下:因网络问题、数据库检测延迟或代码缺陷,锁可能未及时释放,导致类似死锁的阻塞问题。解决方案:通过事务超时设置、完善的代码逻辑和运维监控降低风险。原创 2025-03-18 22:45:31 · 796 阅读 · 0 评论 -
SQL中 的exists用法
EXISTS 是 SQL 中的一个子查询条件,用于检查子查询是否返回任何行。如果子查询返回至少一行,则 EXISTS 返回 TRUE。原创 2025-02-08 21:45:42 · 628 阅读 · 0 评论 -
MySQL中DDL操作是否支持事务
MySQL中DDL不支持事务。原创 2025-02-08 21:39:31 · 471 阅读 · 0 评论 -
如何限制SQL的执行时间(max_execution_time)
在MySQL中,max_execution_time是一个系统变量,用于限制SQL语句的最大执行时间。当一个查询的执行时间超过这个设置的阈值时,MySQL会尝试终止并停止该查询的执行。这个功能主要用于防止某些查询因为执行时间过长而占用过多的系统资源,从而影响数据库的整体性能和响应时间。原创 2025-01-18 11:32:52 · 837 阅读 · 0 评论 -
kill SQL (pt-kill工具)
pt-kill是Percona Toolkit工具集中的一个工具,用于监控MySQL查询并根据指定的条件自动终止长时间运行的查询。这个工具非常有用,特别是在需要管理和控制数据库资源使用,防止长时间运行的查询占用过多资源,影响数据库性能的情况下。原创 2025-01-18 11:32:32 · 430 阅读 · 0 评论 -
在MySQL 主库上进行自动清理 purged gtid 时,会等待 binlog复制到从库吗
在MySQL中,自动清理purged GTID的过程确实会考虑到binlog是否已经复制到从库。原创 2024-12-25 22:21:52 · 599 阅读 · 0 评论 -
errant是怎么产生的
在MySQL中,errant GTID(错误GTID)是指在从库上存在但在主库上不存在的GTID。这通常是由于在从库上执行了不应存在的事务或在主库上未能正确复制的事务所导致的。原创 2024-12-25 22:10:47 · 500 阅读 · 0 评论 -
MySQL purged gtid是如何生成和维护的
在MySQL中,gtid_purged表示已清除的GTID集合。原创 2024-12-24 22:57:01 · 548 阅读 · 0 评论 -
MySQL中Seconds_Behind_Master是怎么计算的
在MySQL中,Seconds_Behind_Master是一个用于表示从库(Slave)落后于主库(Master)的时间(以秒为单位)的指标。原创 2024-12-24 22:48:06 · 1232 阅读 · 0 评论 -
MySQL 怎么不丢数据(关于开启双1配置)
在MySQL中,"双1"配置指的是将innodb_flush_log_at_trx_commit设置为1和sync_binlog设置为1。这两个设置都与数据的持久性和一致性有关,特别是在面对系统崩溃或意外重启的情况下。使用"双1"配置可以最大限度地保证MySQL数据库在面对系统崩溃或电源故障等情况时的数据安全和一致性。即使在这些极端情况下,也能确保所有已提交的事务不会丢失。原创 2024-11-18 23:00:00 · 896 阅读 · 0 评论 -
executed_gtid_set 与 purged_gtid_set
executed_gtid_set 和 purged_gtid_set 是 MySQL 复制中与 GTID(全局事务标识符)相关的两个重要概念。原创 2024-11-18 22:30:00 · 341 阅读 · 0 评论 -
数据库的隔离级别
数据库的隔离级别主要有四种,从低到高依次是:1. 读未提交(Read Uncommitted)2. 读已提交(Read Committed)3. 可重复读(Repeatable Read)4. 串行化(Serializable)原创 2024-10-05 17:25:57 · 1098 阅读 · 0 评论 -
关于MySQL 中的全局事务标识符GTID
MySQL 中的全局事务标识符(GTID)确实会随着事务的不断执行而增长,但这并不意味着它会无限增长而导致问题。GTID 的设计和实现考虑到了长期运行的情况,尽管 GTID 值会持续增加,但它的设计允许数据库系统以可管理和高效的方式处理这些值。GTID 的组成。原创 2024-06-10 14:30:40 · 1058 阅读 · 0 评论 -
MySQL 半同步复制
MySQL 半同步复制自引入以来,经历了多个版本的迭代和优化,逐步增强了其功能和性能。MySQL 5.5:半同步复制首次引入。这个版本的半同步复制提供了基本的功能,确保了在事务提交并写入到主库的二进制日志(binlog)后,至少有一个从库确认接收到这些变更之后,事务才算完成。这减少了主从切换时数据丢失的风险,但在某些情况下可能会增加事务的延迟。功能增强MySQL 5.6:增加了对多线程从库(Multi-Threaded Slave, MTS)的支持。原创 2024-06-10 14:19:50 · 784 阅读 · 0 评论 -
TiDB分布式关系型数据库简介
本文主要介绍TiDB架构以及使用场景。原创 2024-02-14 11:11:19 · 1422 阅读 · 0 评论 -
Innodb_rows_inserted 陡增
最近遇到一个奇怪的问题,`Innodb_rows_inserted`指标出现增长异常。原创 2024-02-04 10:36:27 · 725 阅读 · 0 评论 -
MySQL中的加密函数
函数在 MySQL 中通常用于创建用户时对密码进行加密。例如,当你想创建一个新的 MySQL 用户时,你可以使用。是用户的原始密码,MySQL 会自动对其进行加密。注意:从 MySQL 5.7.6 开始,本文简单介绍MySQL中的加密函数。可以解密外,其他的都是不可逆的。函数已被废弃,建议使用更安全的。注意:以上加密函数除了。函数来加密用户的密码。会返回加密后的密码。原创 2024-01-20 11:58:00 · 1951 阅读 · 0 评论 -
关于MySQL Cluster
MySQL Cluster是MySQL的一个高可用性,高性能的分布式数据库解决方案。它结合了内存数据库和共享无状态架构的技术,提供了99.999%的可用性,满足严格的高可用性需求。原创 2024-01-01 08:30:00 · 1185 阅读 · 0 评论 -
关于数据库归档
本文主要介绍数据库归档基本概念和目的,以及对于MySQL来说,有哪些归档工具。原创 2023-12-31 23:24:45 · 1192 阅读 · 0 评论 -
如何备份和恢复数据库
本文主要介绍如何使用xtrabackup 进行数据库的备份和恢复,并在最后介绍了原理。原创 2023-10-03 20:59:45 · 617 阅读 · 1 评论 -
DTS Data Transfer Service 数据传输服务是什么
例如,阿里云的DTS、AWS 的Database Migration Service、Azure 的Database Migration Service 和 Google Cloud 的 Database Migration Service,一些云服务提供商,如阿里云、AWS、Azure和Google Cloud,都提供了自己的DTS服务,以帮助用户在云环境中进行数据库迁移。DTS通常支持多种源数据库和目标数据库之间的数据迁移,如MySQL、PostgreSQL、Oracle、SQL Server等。原创 2023-09-23 21:32:49 · 804 阅读 · 0 评论 -
业界都有哪些数据库监控工具
这些工具都可以帮助用户实时监控数据库的运行状态、性能指标、系统负载等信息,从而帮助用户更好地管理和维护数据库。不同公司可能会根据自身需求和预算选择合适的监控工具。本文主要介绍下数据库监控工具。原创 2023-08-27 15:59:29 · 1642 阅读 · 0 评论 -
数据库备份工具有哪些
本文主要介绍下数据库备份工具。数据库备份工具有很多种,以下是一些常见的数据库备份工原创 2023-08-27 15:36:49 · 1625 阅读 · 0 评论 -
浅谈数据库分库分表
数据库的分库分表解决方案需要根据实际业务需求和技术栈进行评估,合适才是最重要的。在实施分库分表时,还需要考虑数据迁移、数据一致性、事务处理等问题。原创 2023-07-29 22:48:32 · 1298 阅读 · 0 评论 -
orchestrator 中的 agent
Orchestrator是一个开源的MySQL高可用(High Availability)解决方案,它可以自动化执行MySQL故障转移、主从切换、数据中心迁移等操作,同时提供了一个Web界面和API接口,方便运维人员进行MySQL集群管理和监控。在Orchestrator 常用功能中,很少提及agent,实际上,Orchestrator 也有agent相关功能,并有一个独立的项目。在Orchestrator 中,通过配置项配置agent 相关功能是否开启,主要是http server。原创 2023-06-23 17:10:29 · 677 阅读 · 0 评论 -
MHA(Master High Availability)高可用工具补数据功能
MHA(Master High Availability)是一个用于实现MySQL数据库高可用(High Availability)的工具集。它可以在主从复制架构中实现故障切换和主库切换,以确保数据库服务的稳定运行。原创 2023-05-27 21:13:13 · 1113 阅读 · 0 评论 -
为什么在连接mysql时,设置 SetConnMaxIdleTime 没有作用
在使用golang 连接 mysql时,为了节省连接资源,在连接使用过后,希望在指定长度时间不再使用后,自动关闭连接。这时,经常会使用,设置最大连接有效时间,使用,设置最大空闲连接时间 max idle time。这两个函数的作用听起来差不多,理论上,都能达到相同效果。但是在实际使用中,却有些出人意料。首先看下测试代码,在以下代码中,设置 max idle time 为传入的参数值,设置 max life time 为传入的参数值,设置 max open conn 为1,原创 2023-02-25 22:08:02 · 1806 阅读 · 0 评论 -
MySQL HA(High Availability) 数据库高可用工具Orchestrator 基本原理
`Orchestrator` 是一款开源的MySQL数据库高可用HA工具。它稳定可靠,通过分布式的集群部署模式,自身具备容灾能力。它功能强大,通过周期执行探测SQL,抓取MySQL 实例的基本信息,包括配置信息、复制状态等,可以得到MySQL的拓扑结构topology。并且,可以根据拓扑结构诊断故障analysis failure。本文主要介绍了基本工作原理,相信看完之后,一定会有所收获。原创 2022-12-18 21:28:07 · 1202 阅读 · 0 评论 -
Orchestrator global recovery disable 全局开关
Orchestrator中,在MySQL集群粒度,有故障自动恢复开关,在全局粒度,也有一个全局的开关(global recovery disable)。本文主要介绍全局开关(global recovery disable)的基本实现方式。下面分别从几个层面阐述。原创 2022-10-23 13:11:38 · 494 阅读 · 0 评论 -
Orchestrator中的hooks函数
Orchestrator中有很多hooks函数,用于调用外部服务做一些配置或者准备等工作。原创 2022-09-30 23:10:21 · 771 阅读 · 0 评论 -
stop slave卡住--事务的事件没有复制完整
在文章stop slave卡住,初步介绍了stop slave的问题现象以及一些原因。以及文章stop slave 卡住模拟–大事务场景中,介绍了大事务场景中,stop slave的模拟。本文介绍另外一种情况:一个事务的事件没有完整复制到从库。此时在从库事务已经开始执行,并且在等待事务的其他事件,但由于主库故障,从库上,没有收到这个事务的所有事件。......原创 2022-06-30 23:44:29 · 757 阅读 · 0 评论 -
MySQL中的 空值(null)和空字符(‘‘)
目录文章目录长度和判空ifnull字段定义为not null,查询的时候也可能返回null建议参考空值(null)和空字符(‘’)是两个比较容易混淆的概念。本文对两者的区别做简单梳理。长度和判空长度判断空空值null长度为null,占空间,但具体占用多大空间不确定。判断null用is null或is not null空字符串’’长度为0,不占用空间。判断空字符用=‘‘或者!=’’ifnull对于空值null,可以使用ifnull()函数进行处理。例如,原创 2022-05-01 16:20:13 · 5330 阅读 · 0 评论 -
golang 连接mysql 的时间参数loc, parseTime
在使用golang连接MySQL的时候,经常会用到和。这两个参数的作用是什么呢?先说下不带这两个参数存在的问题:下面看下这两个参数。如果配置了,MySQL中的、等时间类型字段将自动转换为golang中的类型。 类似的 ,会被转为的零值。否则,如果没有配置或配置了, 只会转为 / 。设置转换为 类型时, 使用的时区信息 (当设置parseTime=true)。默认值 ,表示解析为UTC时间。一般设置为,表示使用当地时间。这个设置只表示解析为类型时,使用的配置。原创 2022-04-30 23:05:18 · 7765 阅读 · 0 评论