并发问题的两种解决方法

并发方案

悲观锁:
对关键数据的查询 进行加锁。
(select * from df_goods_sku where id = 17 for update;)

事务结束,释放 锁。

乐观锁:
对关键数据的查询 不加锁。
在修改关键数据时 进行判断。
判断 修改关键数据时数据库中的记录 和 查询关键数据时数据库中的记录 是否一致。
在修改 关键数据的记录时,如果 关键数据的记录 发生了改变,放弃 对关键数据的记录 做修改。
update df_goods_sku set stock=new_stock sales=new_sales
where id=sku_id and stock=origin_stock

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • InnoDB 锁 数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性。InnoDB是一个支持行锁的存储引擎...
    大富帅阅读 5,404评论 0 4
  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 7,278评论 1 8
  • 一、事务的基本要素(ACID) 1、原子性(Atomicity):事务开始后所有操作,要么全部完成,要么全部不做,...
    habit_learning阅读 5,732评论 0 4
  • 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序...
    蝈蝈泡泡奶片阅读 4,738评论 0 10
  • 一、整体流程图 结构图image 二、购物车需求 1.1、购物车中的物品可以修改数量1.2、购物车中的物品可以选择...
    唯老阅读 8,581评论 0 8