今天的主人公是我们公司同事侨总,传说中手上有10个比特币的男人。自从比特币大涨以来,养成了几个小爱好:周末听戏坐包厢,骑马酒吧滑雪场。  这不,前两天侨总又双叒叕出来体验面试了,晚上请我烧烤时跟我聊了聊这次有趣的面试经历,真是意犹未尽,趁他回味之余我又吃了十几串儿腰子和羊肉~ 嗯,真香!  对不住,跑题了。。人到中年嘛,保温杯里泡枸杞之余总会。。。  来不及 ......
336
0
0
2022-11-18
基于mysql分布式悲观锁原理悲观锁在库存服务中的应用:在这个过程中我们是使用gorm来完成mysql的分布式悲观锁的核心的代码在这里,该方法就能完成悲观锁了更多关于gorm的学习DB.Clauses(clause.Locking{Strength: "UPDATE"}) 完整代码://Sell 扣减库存,涉及事务逻辑,执行的逻辑必须全部成功或者全部失败并 ......
624
0
0
2022-11-14
MySQL分布式悲观锁原理:条件FOR UPDATE 仅适用于InnoDB存储引擎,且必须在事务区块(BEGIN/COMMIT)中才能生效。mysql默认情况下每个sql都是单独的一个事务,并且是自动提交事务。测试之前需要设置成非自动提交事务,不然无法模拟并发访问:mysql> select @@autocommit; +-------------- ......
380
0
0
2022-11-14
什么是数据库事务数据库的 事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。如果任意一个操作失败,那么整组操作即为失败,会回到 ......
398
0
0
2022-10-26
前面我们讲了MySQL数据库底层的数据结构与算法、MySQL性能优化篇一些内容。我们再来聊聊MySQL的锁与事务隔离级别,分上下两篇,本篇重点讲MySQL的行锁与事务隔离级别。锁定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问 ......
406
0
0
2022-10-05
悲观锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。不要把他们与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)混为一谈。一、悲观锁顾名思义,就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处理过程中,需要将数据锁定。悲观锁的实现,通常依靠数据库提供的锁机制实现,比如m ......
366
0
0
2022-06-23
一、mysql锁介绍锁来源在存在并发操作的时候,必然需要一种机制来保证数据的完整性与一致性。锁就是这一技术的实现。锁种类根据概念分:悲观锁和乐观锁根据粒度分:表锁、页锁、行锁,最常见的就是表锁和行锁。其中,MyISAM引擎只有表锁,而InooDB既有表锁也有行锁。根据功能分:共享锁、排它锁(独占锁)、意向锁等。其中,共享锁被称为S锁。排它锁称为X锁。 锁 ......
406
0
0
2022-04-21
MySQL 的锁可以分为三大类 全局锁表锁行锁 全局锁 对整个数据库实例加锁命令是 Flush tables with read lock (FTWRL) 当你让整个数据库处于只读状态,可以用这个,之后其他线程的所有增删改操作都会被阻塞,包括建表,修改表结构 应用场景 典型场景是做全库逻辑备份,确保不会有其他线程操作数据,但是带来的危险就是业务停摆 ......
349
0
0
2022-04-18
分两种锁共享锁: SELECT … LOCK IN SHARE MODE排它锁: SELECT … FOR UPDATE1.手动提交 排它锁关闭 MySQL 自动提交Set autocommit = 0;窗口1执行命令mysql> select * from stu where id=1 for update; +----+------+-----+ ......
381
0
0
2022-04-11