方案

  1. 低并发场景(数千QPS):基于MySQL的优化方案,通过自研补丁实现热点行更新的分组处理,减少锁竞争和B+树遍历,提升单行更新性能。
  2. 中高并发场景(数万QPS):引入分桶策略,将库存拆分为多个子库存(如将1000库存拆为10个桶),通过分桶调度系统实现并发提升和碎片管理。
  3. 超高并发场景(百万QPS):结合分布式缓存、本地缓存、近端缓存及分库分表,通过多级架构分散压力,例如预扣减缓存后异步同步数据库。

热点行介绍

采用的相同热点行的更新批量执行的方式,以降低热点数据更新时行锁冲突的核心问题。

秒杀场景是实际业务中常见的一种业务场景,对于数据库而言,这个场景的特点就是大量并发针对同一行数据进行更新。热点数据更新的核心问题在于行锁的冲突,为了解决这个问题,云数据库 MySQL 版采用了相同热点行的更新批量执行的方式。对于带有热点更新标识的 SQL 进入数据库后,数据库会对更新相同数据的 SQL 进行合并处理,从而提升热点高并发更新的性能。

调用Inventory Hint提高吞吐能力_云数据库 RDS(RDS)-阿里云帮助中心

热点数据行UPDATE操作的性能优化_云原生数据库 PolarDB(PolarDB)-阿里云帮助中心

百万QPS

几乎是把能用的都用上了

c7387ea4e270750627aca4e2fd9ab5f5.png

参考

https://blog.csdn.net/qq_24520119/article/details/147958877?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-5-147958877-blog-143724604.235^v43^pc_blog_bottom_relevance_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~BlogCommendFromBaidu~Rate-5-147958877-blog-143724604.235^v43^pc_blog_bottom_relevance_base1&utm_relevant_index=9

https://zhuanlan.zhihu.com/p/667101738

https://blog.csdn.net/o0oho/article/details/143724604

https://www.volcengine.com/docs/6313/1206721