MySQL
文章平均质量分 93
AI 早咖啡
️|专注AI技术分享,跟上AI时代不掉队。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
高并发系统设计精讲:设计高并发系统的时候,数据库层面该如何设计?
设计高并发系统的数据库层时,分库分表不是目的,而是手段。不要过度设计:在单表数据量未达到瓶颈(如500万)或并发未达到瓶颈前,优先通过索引优化、缓存、读写分离来解决。选对策略垂直拆分先行,解决业务耦合和宽表问题。水平拆分兜底,解决海量数据和高并发问题。工具选型中小团队首选。大型团队或多语言环境考虑Mycat或。数据库架构的演进是业务倒逼的结果。作为架构师,既要看到未来的扩展性,也要脚踏实地解决当下的痛点。原创 2025-12-02 09:57:01 · 394 阅读 · 0 评论 -
3个技术搞定分布式数据?分库分表+动态数据源+读写分离原来如此简单
如果面试官问:“你们是如何实现分库分表和读写分离的?”,可以这样回答:"我们基于 Spring 的和 AOP 自研了一套中间件。分片方面:实现了通用的接口,支持取模等多种算法。通过解析@ShardOn注解获取分片键,计算出物理库名和表名。动态数据源:利用 ThreadLocal 传递计算好的数据源 Key,在 SQL 执行前动态切换连接池。读写分离:在路由层增加了读写判断逻辑,写请求走 Master,读请求走 Slave,并支持通过注解强制走主库以解决主从延迟问题。稳定性。原创 2025-12-02 09:44:44 · 989 阅读 · 0 评论 -
【MySQL体系】第8篇:MySQL集群架构技术详解
随着互联网业务的快速发展和数据量的爆炸式增长,单机MySQL已经无法满足高并发、高可用、高扩展性的业务需求。本文将深入探讨MySQL集群架构的设计原理、实现方案和最佳实践,帮助读者全面掌握MySQL集群技术。MySQL集群架构的设计遵循以下核心原则:1. 高可用性(High Availability)2. 可扩展性(Scalability)3. 数据一致性(Consistency)4. 性能优化(Performance)网络分区问题数据同步延迟故障检测与恢复一致性(Consistency)可用性(Ava原创 2025-10-27 17:48:32 · 677 阅读 · 0 评论 -
【MySQL体系】第7篇:MySQL锁机制深度解析与实战
在高并发的数据库应用场景中,锁机制是保证数据一致性和完整性的核心技术。MySQL作为最流行的关系型数据库之一,提供了完善的锁机制来处理并发访问。本文将深入探讨MySQL的锁分类、实现原理,并通过实战案例帮助读者掌握锁机制的应用。脏读:读取到未提交的数据不可重复读:同一事务中多次读取结果不一致幻读:查询结果集在事务执行过程中发生变化数据不一致:并发修改导致的数据错误锁机制通过控制对数据的访问顺序,确保数据库操作的ACID特性。原创 2025-10-27 17:16:55 · 853 阅读 · 0 评论 -
【MySQL体系】第6篇:MySQL事务控制演进
在过去十多年的数据库架构设计和性能优化工作中,我见证了MySQL从早期版本到现在8.0版本在事务处理方面的巨大变化。特别是在处理高并发场景时,事务控制机制的选择往往决定了整个系统的性能上限。本文将从实际项目经验出发,梳理MySQL事务控制的技术演进路径,重点分析各种机制的适用场景和性能特点。MySQL事务控制的演进体现了数据库技术在一致性和性能之间不断寻求平衡的过程。MVCC作为当前的主流解决方案,通过巧妙的多版本设计,在保证数据一致性的前提下,大幅提升了系统的并发处理能力。高并发读多写少强一致性要求。原创 2025-10-24 15:38:10 · 903 阅读 · 0 评论 -
【MySQL体系】第5篇:详解事务的 ACID 特性
一个事务对数据的所有修改,要么全部执行成功并生效,要么全部执行失败并回滚,不存在 “部分生效” 的中间状态。例如,转账场景中 “从 A 账户扣 100 元” 和 “给 B 账户加 100 元” 必须同时成功或同时失败,绝不能出现 “A 扣了钱但 B 没收到” 的情况。一个事务一旦提交,它对数据库中数据的改变就成为永久性的,后续无论发生系统崩溃、断电还是其他故障,都不会导致这些修改丢失。如果说原子性解决的是 “事务执行结果的完整性”,那么持久性解决的就是 “已提交结果的安全性”。原创 2025-10-13 15:42:26 · 1100 阅读 · 0 评论 -
【MySQL体系】第4篇:MySQL 查询优化实用技巧
全表扫描(type = ALL)当EXPLAIN分析结果中type字段的值为ALL时,表示查询进行了全表扫描,需要遍历表中的所有记录才能找到符合条件的数据。全表扫描在数据量较小时影响不明显,但在百万级、千万级数据量的表中,会导致极大,查询执行时间急剧增加。常见场景:未创建合适的索引、索引失效(如使用or连接非索引字段、在索引字段上使用函数运算等)。全索引扫描(type = index)当type字段的值为index时,表示查询进行了全索引扫描,需要遍历整个索引树才能找到符合条件的数据。原创 2025-10-11 10:26:40 · 513 阅读 · 0 评论 -
【MySQL体系】第3篇:MySQL 索引解析与优化技巧
覆盖索引(Covering Index)是指索引中包含了查询所需的所有字段,无需通过回表查询就能获取完整的查询结果。简单来说:“查询的字段 <= 索引的字段”,此时 MySQL 会直接从索引中读取数据,无需访问聚簇索引。覆盖索引的核心优势在于:避免回表查询,减少 B + 树查找次数,提升查询速度。索引的体积通常远小于全表数据,读取索引时 I/O 成本更低。若查询只需扫描索引,MySQL 可能会选择 “索引扫描”(type=index),而非全表扫描。原创 2025-10-09 15:27:29 · 1052 阅读 · 0 评论 -
【MySQL体系】第2篇:MySQL索引类型和原理
引言第 1 节 索引类型1.1 普通索引1.2 唯一索引1.3 主键索引1.4 复合索引1.5 全文索引第 2 节 索引原理2.1 二分查找法2.2 Hash 结构2.3 B+Tree 结构2.4 聚簇索引和辅助索引。原创 2025-09-28 11:21:09 · 1124 阅读 · 0 评论 -
【MySQL系列】第1篇:MySQL架构原理|从体系到存储的解析
MySQL 核心逻辑层,包含 SQL 接口(接收 SQL 指令)、查询优化器(基于成本生成最优执行计划,如选择索引、调整 Join 顺序)、数据字典(存储表结构、列信息等元数据),且与存储引擎解耦;:存储表相关数据,分系统表空间(ibdata1,存储数据字典、早期 Undo Log)、独立表空间(xxx.ibd,每张表对应一个,存储表数据、索引、高版本 Undo Log);:最小 I/O 单位,默认 16KB,类型包括数据页(存储行数据)、索引页(存储索引信息)、Undo 页(存储 Undo Log);原创 2025-09-15 14:56:42 · 1003 阅读 · 0 评论 -
【MySQL系列】吃透 MySQL 中的那些锁
大学课堂上,老师嘴里的 “共享锁”“排它锁” 总像天书;如今做开发,又频繁冒出 “乐观锁”“悲观锁”“死锁”—— 这些听起来很高级的概念,到底该怎么理解?最近我专门基于MySQL 5.6 + InnoDB 存储引擎做了一些实验,把这些锁的逻辑捋了一遍。今天就用通俗的语言 + 实操案例,带你揭开 MySQL 锁的神秘面纱,看完就能用在实际开发里。两个或多个事务,互相持有对方需要的锁,且都不愿释放,形成无限等待的僵局。就像两个人过独木桥,都走到桥中间,谁都不肯退,最后都过不去。分类维度具体类型核心特点。原创 2025-09-13 16:36:41 · 1146 阅读 · 0 评论
分享