美文网首页程序员
中并发控制(数据库)

中并发控制(数据库)

作者: 黄大海 | 来源:发表于2021-01-28 14:27 被阅读0次

什么叫中等并发?不是高并发,不是低并发

并发度 说明 举🌰 典型方案
高并发 短时间内的大量并发冲突 秒杀活动 redis缓存 + 串行化 + 异步
低并发 TPS很低。基本没有并发冲突 后台配置系统 不需要处理/悲观锁/乐观锁
中并发 TPS比较平均,且有一定的并发冲突。 一般性的事务性系统。订单,库存,支付 下面详细介绍

并发需要解决的两大问题:

  1. 竞态条件


    竞态条件.jpg

并发策略

策略 举🌰 并发度
带边界更新 update inventory set stock = stock - 1 where stock > 0 ****
CAS update order set status = 'confirmed' where status = 'init' ***
版本号 update user set age = 18, version = version + 1 where version = ? **
悲观锁 select for update/update/delete *
  1. 幂等


    幂等.jpg

幂等策略

场景 策略 举🌰
插入幂等 检测duplicated key冲突 unique key(ordersn); insert into order(ordersn, ...) values ('SNXXX1', ...)
删除幂等 天然幂等 delete from order where ordersn = 1
更新幂等 更新失败后检测值 update order set status = 'confirmd' where status = 'init'; if updated = 0; select status from order; if status = 'confirmed' return true
更新幂等 带外部流水号,插入日志表,检测duplicated key冲突 insert into order_action(sequence, ...) values('流水号',...); update order set status = 'confirmd' where status = 'init';

相关文章

  • 你应该了解的MySQL锁分类

    MySQL中的锁 锁是为了解决并发环境下资源竞争的手段,其中乐观并发控制,悲观并发控制和多版本并发控制是数据库并发...

  • 一文理解Mysql MVCC

    MVCC 就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问。 为...

  • 数据库之并发控制

    协调多用户数据库系统中事务的同时执行被称为并发控制。并发控制的目的是确保多用户数据库环境中事务的可序列化性。为了实...

  • 中并发控制(数据库)

    什么叫中等并发?不是高并发,不是低并发 并发度说明举?典型方案高并发短时间内的大量并发冲突秒杀活动redis缓存 ...

  • 数据库的隔离级别和 MVCC

    MVCC (Multi-Version Concurrency Control),多版本并发控制。数据库实现并发访...

  • MySQL 锁的一些概念

    在数据库系统中,每时每刻都会对数据库进行大量查询和数据操作,MySQL通过锁机制来进行并发控制 读写锁 在处理并发...

  • 乐观锁,悲观锁详解

    并发控制 并发控制:当多个连接对记录进行修改的时保证数据的一致性。 悲观锁,乐观锁 确保在多个事务同时存取数据库中...

  • MySQL中的悲观锁和乐观锁

    悲观锁(Pessimistic Lock)和乐观锁(Optimistic Lock)是数据库系统中并发控制主要采用...

  • mysql锁

    在数据库中设计锁的目的是为了处理并发问题,在并发对资源进行访问时,数据库要合理控制对资源的访问规则。 而锁就是用来...

  • 09.深入理解乐观锁与悲观锁

    在数据库的锁机制中.数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据,不破坏事...

网友评论

    本文标题:中并发控制(数据库)

    本文链接:https://www.haomeiwen.com/subject/zonttltx.html