什么是数据库事务数据库的 事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么都执行,要么都不执行,因此事务是一个不可分割的工作逻辑单元。如果任意一个操作失败,那么整组操作即为失败,会回到 ......
289
0
0
2022-10-26
前面我们讲了MySQL数据库底层的数据结构与算法、MySQL性能优化篇一些内容。我们再来聊聊MySQL的锁与事务隔离级别,分上下两篇,本篇重点讲MySQL的行锁与事务隔离级别。锁定义锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共享的资源。如何保证数据并发访问 ......
289
0
0
2022-10-05
悲观锁与乐观锁是人们定义出来的概念,你可以理解为一种思想,是处理并发资源的常用手段。不要把他们与mysql中提供的锁机制(表锁,行锁,排他锁,共享锁)混为一谈。一、悲观锁顾名思义,就是对于数据的处理持悲观态度,总认为会发生并发冲突,获取和修改数据时,别人会修改数据。所以在整个数据处理过程中,需要将数据锁定。悲观锁的实现,通常依靠数据库提供的锁机制实现,比如m ......
260
0
0
2022-06-23
一、mysql锁介绍锁来源在存在并发操作的时候,必然需要一种机制来保证数据的完整性与一致性。锁就是这一技术的实现。锁种类根据概念分:悲观锁和乐观锁根据粒度分:表锁、页锁、行锁,最常见的就是表锁和行锁。其中,MyISAM引擎只有表锁,而InooDB既有表锁也有行锁。根据功能分:共享锁、排它锁(独占锁)、意向锁等。其中,共享锁被称为S锁。排它锁称为X锁。 锁 ......
310
0
0
2022-04-21
MySQL 的锁可以分为三大类 全局锁表锁行锁 全局锁 对整个数据库实例加锁命令是 Flush tables with read lock (FTWRL) 当你让整个数据库处于只读状态,可以用这个,之后其他线程的所有增删改操作都会被阻塞,包括建表,修改表结构 应用场景 典型场景是做全库逻辑备份,确保不会有其他线程操作数据,但是带来的危险就是业务停摆 ......
257
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; +----+------+-----+ ......
264
0
0
2022-04-11