数据库
文章平均质量分 85
旷野说
关注我,从零开始构建基础IT设施;公众号:旷野说;前大厂工程师(10年+研发经验);计算机科班生;
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何用 Redpanda + 本地事务,实现“发消息 + 写 DB” 的强一致性!
摘要: 文章探讨了如何利用Redpanda和本地事务表实现"发消息+写DB"的强一致性。传统同步调用方式存在消息丢失或重复的风险,作者提出采用本地事务表+定时扫表任务的方案,将消息与业务数据写入同一数据库事务,通过独立任务扫描未发送消息并重试发送。该方案结合Redpanda的幂等生产者和消费端幂等处理,确保"至少发一次"和"最多处理一次"的可靠性。文章强调高并发系统的韧性往往源于简单可靠的设计,而非复杂前沿技术,并总结了实现强一致性的关键口诀。原创 2025-11-30 21:09:47 · 939 阅读 · 0 评论 -
那年夏天,我们的“巨无霸”单体差点压垮整个平台
摘要: 文章以高并发场景下的单体架构优化为核心,通过实战案例揭示:盲目拆微服务并非性能瓶颈的解决方案。作者通过引入Redpanda消息队列,将同步调用改为异步处理(主流程耗时从500ms降至50ms),并强调异常处理三原则(死信队列兜底、幂等消费、监控告警)。指出高并发优化的本质在于代码层面的异步解耦、状态管理和异常控制,而非架构形式。最后提出"先稳微观再谈拆微"的渐进式演进策略,为Spring Boot开发者提供兼容Kafka协议的高性能中间件实践方案。(149字)原创 2025-11-30 20:59:10 · 666 阅读 · 0 评论 -
用 Redis + Lua 守住打赏原子性:我在单体系统中的微观实践(续)
摘要: 在C端高并发打赏场景中,Redis Lua脚本成为保障原子操作的关键防线。本文通过实战案例,详解如何用Spring Boot+Redisson高效集成Lua脚本:从IDEA语法检查、Maven预校验到原子扣款实现,构建"防重-扣款-日志"一体化方案。重点解决脚本管理、主从同步、降级兜底等生产级问题,并给出"慢日志监控+嵌入式测试"的调试方案,最终提炼出血泪总结的Redis Lua实践口诀。在高并发系统中,微观层面的脚本健壮性往往比架构设计更能决定系统稳定性。原创 2025-11-30 20:09:26 · 688 阅读 · 0 评论 -
从单体扛百万并发:我在社交打赏系统中的微观优化实战
本文分享了单体架构应对高并发场景的优化实战经验。作者通过社交打赏系统案例,指出高并发瓶颈往往源于微观设计缺陷,而非架构形态。核心优化策略包括:1)使用Redis+Lua实现原子操作,解决并发扣减问题;2)异步化处理DB操作,解耦核心路径;3)建立对账机制保障最终一致性;4)精细化异常处理和容器选型。实践表明,通过这四大微观优化,单体应用可稳定支撑百万级并发,相比盲目拆分微服务更具性价比。文章强调高并发优化应始于微观层面的精准控制,而非架构层面的过度设计。原创 2025-11-30 19:36:25 · 577 阅读 · 0 评论 -
交友电商平台踩过的坑:高并发抢限量礼物,事务与缓存如何共舞
摘要: 本文以高并发电商平台中的“七夕限量情书”抢购活动为例,剖析了传统事务锁(SELECT ... FOR UPDATE)在高并发场景下的性能瓶颈,以及单纯依赖Redis缓存导致的超发问题。作者提出一套纵深防御体系:通过Redis Lua脚本实现原子预扣、异步消息队列削峰落库、MySQL唯一索引兜底及定时对账补偿,最终实现120,000+ QPS下零超发。关键经验包括:避免串行化锁,缓存操作必须原子化,异步与同步结合,并通过依赖管理规避版本冲突。技术口诀“缓存扛,Lua保;异步落,索引兜;对账在,心不慌”原创 2025-11-30 19:21:33 · 561 阅读 · 0 评论 -
MySQL 多表复杂查询终极指南:7 张表也能快如闪电!
本文针对多表复杂查询场景,提出了一套高效的"3层分层法+5句口诀"解决方案。核心思想是将复杂查询拆分为主干层、过滤层和输出层三个清晰层级,避免一次性JOIN导致性能问题。文章包含完整的7表查询实战案例,提供可直接运行的SQL模板,并给出关键索引建议。通过与传统方法的对比,展示了分层写法的优势:可读性强、中间结果可控、索引利用率高、扩展性好。最后总结为四句实用口诀,帮助开发者轻松应对跨系统数据查询需求。原创 2025-11-28 21:50:56 · 449 阅读 · 0 评论 -
现代数据库系统数据结构 B+Tree
摘要: B+树是B-树的优化版本,广泛应用于数据库和文件系统,支持高效范围查询和磁盘I/O访问。其核心特点包括:多路平衡搜索结构、内部节点仅存索引(不存数据)、数据全存于叶子节点,并通过双向链表连接叶子节点以提升范围查询性能。相比B-树,B+树具有更高的扇出(更矮的树)、更优的范围查询能力,且查询路径长度完全一致。在数据库中,B+树用于主键(聚簇索引)和二级索引,通过减少磁盘I/O(通常仅需3-4次访问)实现十亿级数据的毫秒级查询。尽管B+树不适合频繁主键更新,但其设计完美适配外存系统,成为现代数据库的核心原创 2025-11-10 15:13:39 · 528 阅读 · 0 评论 -
MongoDb 有必要分库么
💡 实际测试:在相同硬件下,用 explain(“executionStats”) 对比查询计划,关注 executionTimeMillis 和 totalDocsExamined,而非数据库数量。在 MongoDB 中,数据分散在多个数据库(DB) 中查询与集中在单个数据库中查询的性能差异主要取决于资源分配、并发操作和系统负载。原创 2025-06-17 16:36:24 · 374 阅读 · 0 评论
分享