暂无图片
什么是事务?什么是锁?
我来答
分享
暂无图片
Halo Tech
2023-11-08
什么是事务?什么是锁?

什么是事务?什么是锁?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
X
x

表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

行级锁:开销大,加锁慢;会出现死锁;锁定力度最小,发生锁冲突的概率最低,并发度也最高。

页面锁:开销和加锁时间界于表锁和行锁之间,会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。


行锁:在mysql的innodb引擎支持行锁,与oracle不同,Mysql的行锁是通过索引加载的,也就是说,行锁是加在索引响应的行上的,要是对应的sql语句没有走索引,则会全表扫描,行锁则无法实现,取而代之的是表锁,此时其他事务无法对当前表进行更新或插入操作。

暂无图片 评论
暂无图片 有用 9
董大威

事务的特性:
1、原子性:整个事务中的所有操作,要么全部完成,要么全部不完成
2、一致性:在事务开始之前和事务结束以后,数据的完整性必须保持一致。
3、隔离性:事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔离。
4、持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

暂无图片 评论
暂无图片 有用 2
暂无图片
Halo Tech

事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将一组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。

锁:在所有的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。共享锁(只读不写)、排他锁(可读可写)

暂无图片 评论
暂无图片 有用 0
victoryau

事务

比如在购物网站上买东西。整个购买过程包括选商品、付款、减库存等多个步骤。这整个过程就像一个“事务”。在数据库中,事务确保这些步骤要么全部完成,要么一个也不做。就像你要么买到东西(所有步骤都完成),要么什么都没发生(比如付款失败,什么都不会改变)。

事务的主要特点是:

  • 原子性:事务中的操作要么全部完成,要么一个也不做。
  • 一致性:事务完成后,数据库从一个正确的状态转移到另一个正确的状态。
  • 隔离性:每个事务都是独立的,不会被其他事务干扰。
  • 持久性:一旦事务完成,其结果就永久保存在数据库中。

比如在图书馆里找书。如果某本书你正在看,别人就不能同时拿走它。数据库里的“锁”就是这个意思。它确保当一个事务在操作一部分数据时,其他事务不能同时改这部分数据。

锁的主要作用是:

  • 保护数据:防止多个事务同时修改同一数据,导致数据错乱。
  • 确保一致性:通过控制对数据的访问,确保事务的一致性和完整性。

锁可以有不同的类型,比如:

  • 共享锁:允许多个事务读同一数据,但不允许修改。
  • 排它锁:如果一个事务对数据加了排它锁,其他事务就既不能读也不能写这部分数据。
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏