- 1 合理使用范式和反范式1.1 范式遵循范式的优点:范式化的更新通常比反范式要快。当数据较好的范式化后,很少或者没有重复的数据。范式化的数据比较小,可以放在内存中,操作比较快。遵循范式的缺点:通常需要进行表关联。1.2 反范式反范式优点:所有的数据都在同一张表中,可以避免关联。可以设计有效的索引。反范式缺点:表格内的冗余较多,删除数据时候会造成表有些有用的信息丢失。1.3 如何选择 在实际... 1 合理使用范式和反范式1.1 范式遵循范式的优点:范式化的更新通常比反范式要快。当数据较好的范式化后,很少或者没有重复的数据。范式化的数据比较小,可以放在内存中,操作比较快。遵循范式的缺点:通常需要进行表关联。1.2 反范式反范式优点:所有的数据都在同一张表中,可以避免关联。可以设计有效的索引。反范式缺点:表格内的冗余较多,删除数据时候会造成表有些有用的信息丢失。1.3 如何选择 在实际...
- 索引建了但没走,是慢查询里最常见的原因。下面几种写法在业务代码里出现频率很高,而且都不会报错,只会在某天数据量上来之后突然变慢。 索引建了但没走,是慢查询里最常见的原因。下面几种写法在业务代码里出现频率很高,而且都不会报错,只会在某天数据量上来之后突然变慢。
- MySQL 事务与 MVCC:隔离级别、锁与幻读的真相 前言"MySQL 默认隔离级别能防幻读吗"这个问题,面试和实战都能问出事故。本文从 MVCC 的底层结构讲起,说清快照读与当前读的分工,以及为什么加了索引还会死锁。 一、ACID 与四种隔离级别隔离级别脏读不可重复读幻读实现方式READ UNCOMMITTED可能可能可能直接读最新数据READ COMMITTED否可能可能每条语句新建... MySQL 事务与 MVCC:隔离级别、锁与幻读的真相 前言"MySQL 默认隔离级别能防幻读吗"这个问题,面试和实战都能问出事故。本文从 MVCC 的底层结构讲起,说清快照读与当前读的分工,以及为什么加了索引还会死锁。 一、ACID 与四种隔离级别隔离级别脏读不可重复读幻读实现方式READ UNCOMMITTED可能可能可能直接读最新数据READ COMMITTED否可能可能每条语句新建...
- 主从复制是 MySQL 高可用和读写分离的基础,它的核心机制是「binlog + 日志回放」。整个过程分三步。第一步,主库(Master)在事务提交时,把数据的变更记录写入二进制日志(binlog)。第二步,从库(Slave)开启一个 IO 线程,连接主库并请求 binlog 的备份。第三步,主库的 Binlog Dump 线程把日志内容发送给从库,从库写入本地的中继日志(relay log... 主从复制是 MySQL 高可用和读写分离的基础,它的核心机制是「binlog + 日志回放」。整个过程分三步。第一步,主库(Master)在事务提交时,把数据的变更记录写入二进制日志(binlog)。第二步,从库(Slave)开启一个 IO 线程,连接主库并请求 binlog 的备份。第三步,主库的 Binlog Dump 线程把日志内容发送给从库,从库写入本地的中继日志(relay log...
- 很多应用刚上线时查询飞快,数据量涨到几十万行后,某些页面就开始卡顿。排查下来,大部分情况都和索引有关:要么没建索引,要么建了却没用上。本文用一个简单的订单表,说明怎么用 EXPLAIN 判断查询有没有走索引,以及建索引时几个常见的注意点。一、先看执行计划假设有一张 orders 表,包含 id、user_id、status、created_at 等字段。查询某个用户最近的订单:EXPLAIN... 很多应用刚上线时查询飞快,数据量涨到几十万行后,某些页面就开始卡顿。排查下来,大部分情况都和索引有关:要么没建索引,要么建了却没用上。本文用一个简单的订单表,说明怎么用 EXPLAIN 判断查询有没有走索引,以及建索引时几个常见的注意点。一、先看执行计划假设有一张 orders 表,包含 id、user_id、status、created_at 等字段。查询某个用户最近的订单:EXPLAIN...
- 几乎所有带账号、订单、文章的网站背后都有一个数据库在存数据。MySQL 是其中最常见的一种关系型数据库:免费、资料多、很多云服务器和虚拟主机都默认提供,学会它,日常开发里“数据往哪存、怎么查”这两个问题就基本有答案了。这篇文章从最基础的概念讲起,走完建库、建表、增删改查这条主线,帮你把 MySQL 从“听说过”变成“会用”。 一、关系型数据库到底在存什么可以把 MySQL 想象成一个带格子的... 几乎所有带账号、订单、文章的网站背后都有一个数据库在存数据。MySQL 是其中最常见的一种关系型数据库:免费、资料多、很多云服务器和虚拟主机都默认提供,学会它,日常开发里“数据往哪存、怎么查”这两个问题就基本有答案了。这篇文章从最基础的概念讲起,走完建库、建表、增删改查这条主线,帮你把 MySQL 从“听说过”变成“会用”。 一、关系型数据库到底在存什么可以把 MySQL 想象成一个带格子的...
- 很多初学者学数据库时容易一上来就背概念,结果真正动手时连一张表都建不出来。其实入门最好的方式,是先跑通一个最小闭环:建库、建表、插入数据、查询、更新、删除,再理解索引为什么重要。本文用 MySQL 为例,带你十分钟完成这一整套操作,适合刚开始做后端开发或准备把数据存进数据库的新手参考。 一、准备环境如果你本机已经装了 MySQL,可以直接用命令行客户端登录。如果还没有,也可以用容器快速起一个... 很多初学者学数据库时容易一上来就背概念,结果真正动手时连一张表都建不出来。其实入门最好的方式,是先跑通一个最小闭环:建库、建表、插入数据、查询、更新、删除,再理解索引为什么重要。本文用 MySQL 为例,带你十分钟完成这一整套操作,适合刚开始做后端开发或准备把数据存进数据库的新手参考。 一、准备环境如果你本机已经装了 MySQL,可以直接用命令行客户端登录。如果还没有,也可以用容器快速起一个...
- RDS for MySQL 报 Too many connections 时,先在智能DBA助手实时会话里 Kill 空闲和问题会话止血,再按连接曲线是缓慢爬升还是瞬间飙升,分别排查连接泄漏、空闲堆积、长事务、连接风暴和慢 SQL 排队,最后再评估调大 max_connections 或升配,并给出连接池、超时和告警的预防配置与速查表。 RDS for MySQL 报 Too many connections 时,先在智能DBA助手实时会话里 Kill 空闲和问题会话止血,再按连接曲线是缓慢爬升还是瞬间飙升,分别排查连接泄漏、空闲堆积、长事务、连接风暴和慢 SQL 排队,最后再评估调大 max_connections 或升配,并给出连接池、超时和告警的预防配置与速查表。
- 我把生产 MySQL 物理备份迁到 OBS,并按审计要求做异地复制。上线后连续踩了三处坑:上传账号缺 KMS 权限、生命周期规则前缀大小写写错、复制委托无法使用目标密钥。这里记录报错原文、修复命令、耗时和两个月费用。 我把生产 MySQL 物理备份迁到 OBS,并按审计要求做异地复制。上线后连续踩了三处坑:上传账号缺 KMS 权限、生命周期规则前缀大小写写错、复制委托无法使用目标密钥。这里记录报错原文、修复命令、耗时和两个月费用。
- 一、慢查询为什么要当回事数据库往往是整个链路里最贵、最难扩展的一环。一条没走索引的 SQL,可能让一次接口从 10ms 变成 2s;几个高频慢查询叠在一起,就能把连接池占满、拖垮整个服务。所以“定位慢查询 + 用对索引”是后端工程师的基本功。本文讲三件事:怎么找到慢查询、怎么读懂执行计划、以及常见索引失效场景与优化手段。 二、先把慢查询日志打开MySQL 自带慢查询日志,是定位问题的第一手... 一、慢查询为什么要当回事数据库往往是整个链路里最贵、最难扩展的一环。一条没走索引的 SQL,可能让一次接口从 10ms 变成 2s;几个高频慢查询叠在一起,就能把连接池占满、拖垮整个服务。所以“定位慢查询 + 用对索引”是后端工程师的基本功。本文讲三件事:怎么找到慢查询、怎么读懂执行计划、以及常见索引失效场景与优化手段。 二、先把慢查询日志打开MySQL 自带慢查询日志,是定位问题的第一手...
- 备份策略要能回答两个问题:能恢复到什么时间点,恢复需要多久。只做全量备份往往答不上第一个。 备份策略要能回答两个问题:能恢复到什么时间点,恢复需要多久。只做全量备份往往答不上第一个。
- MySQL 千万级大表慢 SQL 排查与索引优化实战:从 B+ 树底层原理到线上秒级破局摘要:在企业级后端系统的演进中,关系型数据库(如 MySQL / 华为云 RDS / GaussDB)往往是高并发链路中最后也是最脆弱的防线。当单表数据量突破千万级后,一条未命中索引的慢 SQL 或一次不合理的深度分页(Deep Pagination),就足以瞬间打满数据库 CPU 甚至拖垮整个微服务集... MySQL 千万级大表慢 SQL 排查与索引优化实战:从 B+ 树底层原理到线上秒级破局摘要:在企业级后端系统的演进中,关系型数据库(如 MySQL / 华为云 RDS / GaussDB)往往是高并发链路中最后也是最脆弱的防线。当单表数据量突破千万级后,一条未命中索引的慢 SQL 或一次不合理的深度分页(Deep Pagination),就足以瞬间打满数据库 CPU 甚至拖垮整个微服务集...
- 一条主键查询突然慢了 600 倍,索引在却没用上。用 EXPLAIN 定位到隐式类型转换,顺手整理了几种常见的索引失效场景。 一条主键查询突然慢了 600 倍,索引在却没用上。用 EXPLAIN 定位到隐式类型转换,顺手整理了几种常见的索引失效场景。
- 索引下推(Index Condition Pushdown,ICP)是 MySQL 5.6 引入的优化,把本该在 Server 层做的条件过滤下推到存储引擎层,减少回表次数。但它不是万能开关,有些场景打开反而更慢。先说原理。没有 ICP 时,存储引擎按索引找到主键后全部回表,把整行交给 Server 层,再由 Server 层用 WHERE 里的条件过滤。有了 ICP,存储引擎在索引上就能用... 索引下推(Index Condition Pushdown,ICP)是 MySQL 5.6 引入的优化,把本该在 Server 层做的条件过滤下推到存储引擎层,减少回表次数。但它不是万能开关,有些场景打开反而更慢。先说原理。没有 ICP 时,存储引擎按索引找到主键后全部回表,把整行交给 Server 层,再由 Server 层用 WHERE 里的条件过滤。有了 ICP,存储引擎在索引上就能用...
- 摘要:数据库迁移是企业上云里风险最高的一环——“迁坏了赔数据,迁慢了业务停摆”。本文以电商订单库从自建 MySQL 迁移到 GaussDB(for MySQL) 为场景,基于数据复制服务 DRS 走“全量+增量”链路,完整演示迁移前评估、预检查、割接窗口、一致性校验与回滚预案,把一次生产级迁移拆成可执行、可撤回的标准动作。标签建议:数据复制服务 DRS、云数据库 GaussDB、数据库迁移、... 摘要:数据库迁移是企业上云里风险最高的一环——“迁坏了赔数据,迁慢了业务停摆”。本文以电商订单库从自建 MySQL 迁移到 GaussDB(for MySQL) 为场景,基于数据复制服务 DRS 走“全量+增量”链路,完整演示迁移前评估、预检查、割接窗口、一致性校验与回滚预案,把一次生产级迁移拆成可执行、可撤回的标准动作。标签建议:数据复制服务 DRS、云数据库 GaussDB、数据库迁移、...
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签