行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大
表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支
乐观锁和悲观锁是两种思想,用于解决并发场景下的数据竞争问题。
事务就是指逻辑上的一组sql语句操作,组成这组操作的sql语句,要么全成功要么全失败。
-- 从id=1的账户给id=2的账户转账100元 -- 第一步:将id=1的A账户余额减去100 UPDATE accounts SET balance = balance - 100 WHERE id = 1; -- 第二步:将id=2的B账户余额加上100 UPDATE accounts SET balance = balance + 100 WHERE id = 2;
上述两条sql操作,要么都执行,要么都不执行,不然钱就对不上了。这就是事务的原子性(Atomicity)。
事务的四大特性:
1.原子性:事务时不可分割的单位,要么一起发生,要么一起失败。
2.一致性:事务发生前后,数据的完整性保持一致。
3.隔离性:多个并发事务之间的数据使相互隔离的。
4.持久性:事务一旦提交,他对数据库的改变就是永久的。事务不能撤销。