自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 揭秘 MySQL 并发控制:事务、锁与 MVCC 的“三角博弈”

尽量用覆盖索引:避免回表,减少锁竞争。控制事务粒度:大事务会持有锁很久,还会产生大量 Redo/Undo,导致 MVCC 版本链过长(查询变慢)。小步快跑,快速提交。避免无索引更新:一旦行锁变表锁,并发直接归零。死锁排查:开启,看日志分析循环等待链。一句话心法:锁是“悲观的强制隔离”,MVCC 是“乐观的版本共存”。InnoDB 用这两把刷子,在保证数据绝对正确的前提下,把并发性能榨到了极致。

2026-03-05 11:34:40 312

原创 MySQL 性能急救手册:手把你教看懂 Explain,避开索引失效的 10 个“坑”

全值匹配:能用就别用,能用就别用LIKE。最左前缀:联合索引要按查询频率排序,最常用的放左边。覆盖索引:这是终极杀器,能不回表就不回表。控制范围:单次查询扫描行数(rows)尽量控制在几千行以内,过万就要警惕。SQL 优化不是玄学,而是数学(成本计算)和数据结构(B+Tree)的博弈。下次遇到慢查询,先别急着加索引,打开EXPLAIN,看看它到底是怎么“想”的。

2026-03-04 17:24:59 424

原创 拒绝做“CRUD工程师”:手撕MySQL核心架构与B+Tree索引的底层逻辑

这是最核心的部分。索引结构经历了:二叉树 -> AVL树 -> BTree ->B+Tree的演进。为什么不是二叉树?如果数据是有序插入(如自增ID),二叉树会退化成链表,查询复杂度变成O(n)。为什么不是哈希(Hash)?哈希索引只能做“精确匹配”(),无法支持范围查询(BETWEEN),这在业务中是致命缺陷。为什么MySQL最终选择了B+Tree?我的理解是三个词矮胖: 相比二叉树,B+Tree的“扇出”(每个节点的子节点数)非常大(上百个),所以树的高度通常只有3-4层。

2026-03-04 17:14:51 482

原创 拒绝写 SQL!基于 LangGraph 打造企业级 Text-to-SQL 引擎:从星型模型到智能体工作流的硬核拆解

在企业数字化转型的深水区,始终横亘着一座难以逾越的“巴别塔”:业务人员手握业务直觉却受困于技术门槛,数据工程师深陷重复取数的泥沼而无暇顾及深层分析。掌柜问数并非简单的“文本转SQL”工具,而是一套试图通过 Agentic Workflow(智能体工作流) 重构数据交互范式的工程实践。本文将摒弃教科书式的架构罗列,转而从“数据语义化”与“流程可控性”两个维度,深度剖析掌柜问数的核心设计,并结合 LangGraph 的特性,展示如何构建一个既懂业务又守规矩的智能数据助手。

2026-02-28 16:50:42 847

原创 告别状态丢失与流程黑盒!LangGraph 四大“黑科技”:从流式交互到时间旅行的全维度重构

在构建复杂多智能体系统时,工作流框架的选择直接决定了系统的可扩展性、可维护性和生产就绪程度。LangGraph 作为 LangChain 生态中专门为智能工作流设计的框架,通过其独特的四大高级特性——流式处理、状态持久化、时间回溯和子图机制,为开发者提供了前所未有的灵活性。本文将通过全新视角解析这些特性,结合优化后的代码示例和实际工程经验,探讨如何最大化利用这些特性构建健壮的智能工作流。

2026-02-28 16:33:42 793

原创 用 LangChain 1.0 做一次真正可落地的 Agent-to-Agent 协作(携程 + 美团 + 滴滴)

基于 LangChain 1.0 实现携程 + 美团 + 滴滴出行场景的 Agent-to-Agent 协作,摒弃全能 Agent 模式,拆分为机票、酒店、打车专属子 Agent + 总协调 Agent。子 Agent 仅绑定单一工具、输出格式标准化,协调层统一调度并增加工具兜底逻辑,解决了工具调用混乱、排错难等问题。该分层结构兼顾稳定性与可维护性,是更适配真实业务落地的工程化方案。总结

2026-02-24 20:29:55 688

原创 90% 的 Java 程序员其实没真正理解这些语法:从对象模型到多态机制一次讲透

围绕 Java 面向对象与高级语法,从类与对象、引用机制、构造方法、this 与 static 用法到继承与多态的运行规则进行系统梳理。结合代码示例解析变量作用域、对象创建流程与方法绑定机制,强化工程视角下的常见误区与设计理解,帮助开发者建立更扎实的 Java 语法与对象模型认知。

2026-02-09 12:00:00 1603 1

原创 把 GC 体系讲清楚:从回收算法到收集器选型,一次建立完整认知

从工程实践角度梳理 JVM 垃圾回收体系,围绕“回收算法—GC类型—收集器”的关系,解析 Minor、Major、Full GC 的触发与影响,并对比 G1、ZGC 等主流收集器的设计取舍与适用场景。结合线上性能抖动与 Full GC 问题,总结收集器选型与调优思路,帮助建立可落地的 GC 理解框架与排查能力。

2026-02-08 20:16:52 1288

原创 Java 锁机制(终极工程版):别把锁当安全感,把它当成本与治理对象

从工程视角讲透 Java 锁机制:锁解决并发下共享数据一致性,但会带来阻塞、自旋、上下文切换等成本,竞争严重还可能死锁与长尾延迟。对比 synchronized 与 ReentrantLock 的适用场景(可重入、可中断、超时、公平性)。强调锁不是越多越安全,应最小化临界区、减少竞争,并通过日志/线程栈提升可观测性、用超时/降级增强可恢复性。

2026-02-04 16:56:08 688

原创 Java 核心三连:泛型、枚举、Hash 冲突——别背概念,直接抓住“设计的动机”

本文围绕泛型、枚举、Hash冲突三大核心点,从工程实践角度提炼底层逻辑:泛型用于约束类型并提升复用安全性;枚举不仅是常量集合,更是领域建模与策略封装利器;Hash冲突关键在key设计与equals/hashCode正确实现。结合踩坑经验给出缓存映射、行为枚举、坏key优化等落地思路,帮助读者获得超出原视频的增量认知。

2026-02-03 11:56:11 1028

原创 从卖票 Demo 到并发思维跃迁:为什么 synchronized 保护的是「共享状态」,而 Lambda 保护的是「代码质量」

本文基于 4 个 Java Demo(卖票+Lambda),指出并发失控往往从 new Thread() 开始。synchronized 保护的不是代码而是共享状态,避免 if(number>0) 的竞态,并通过 happens-before 保证可见性;Lambda 则让并发逻辑从“造对象”转为“描述任务”,提升可读性与可组合性。结论:先收敛共享状态,再谈锁优化。

2026-02-02 20:42:17 918

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除