MySQL

围绕 MySQL 在后端系统中的建模、性能、查询与工程使用经验展开。

8 篇文章,持续沉淀 MySQL 相关实践。

2025年7月21日

活动架构(三):你的系统能抗住百万QPS吗?架构可靠性的灵魂三问

欢迎来到《玩法活动架构设计》系列的终章。在 第一篇 我们用"第一性原理"搭建了三大核心基石,在 第二篇 我们用"策略模式"构建了可插拔的玩法引擎。至此,我们的系统在功能和扩展性上已经堪称优雅。 但,一个只能在"实验室"里优雅运行的系统,是脆…

2023年12月21日

MySQL:数据的存储和读取

MySQL 的架构共分为两层:Server 层和存储引擎层 连接的过程需要先经过 TCP 三次握手,因为 MySQL 是基于 TCP 协议进行传输的 完成 TCP 连接的建立后,连接器就要开始验证你的用户名和密码,如果用户名或密码不对,就收…

2023年12月21日

MySQL:慢查询优化

最左前缀匹配原则 \=和in可以乱序 尽量选择区分度高的列作为索引,区分度的公式是count(distinct col)/count(*) 索引列不能参与计算,保持列"干净" 尽量扩展索引,不要新建索引 先运行看看是否真的很慢,注意设置SQ…

2023年12月21日

MySQL:buffer pool

Innodb 存储引擎设计了一个缓冲池(Buffer Pool) ,来提高数据库的读写性能,当数据从磁盘中取出后,缓存内存中,下次查询同样的数据的时候,直接从内存中读取 有了缓冲池后: 当读取数据时,如果数据存在于 Buffer Pool…

2023年12月21日

MySQL:日志

undo log(回滚日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。 redo log(重做日志) :是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢…

2023年12月21日

MySQL:数据迁移如何实现

简单的实现方案: 通过 MySQL 主从同步的方式做到准实时的数据拷贝 通过 mysqldump 工具将源库的数据导出再导入到新库 存在的问题: 这两种方式只能支持单库到单库的迁移,无法支持单库到多库多表的场景 迁移的同时还有数据写入 平滑…

2023年12月21日

MySQL:大表在线更新字段

某一日 大厂面试官:线上有一张数据量级为几千万的表,需要新增一个字段,该如何处理呢 葫芦:目前还没有接触过类似的场景,大概的想法是建一张新表,双写的形式... 大厂面试官: 回去等通知 稀碎.... ps: 以下内容为参考网上大佬们的实现方…

2023年12月21日

关于连接池的那些事儿

某一日,葫芦正在写一个简单的CURD代码,十三不知何时悄悄的来到身后 十三: 葫芦,你知道db的 conn 如何管理的 葫芦一哆嗦 葫芦: 通过池化技术,通过maxIdleConns 和 maxOpenConns 参数来决定池子的大小 十三…