精华内容
下载资源
问答
  • 2022-01-22 15:05:05

    关系型数据事务4大特性:

    原子性: 一次事务过程中的多个操作要么都成功,要么都失败.

    持久性: 事务一旦提交,数据就不可改变.即使数据库服务出现问题.

    隔离性: 数据库是允许同时有多个事务进行访问, 这时就需要对多个事务间的操作进行隔离,

    隔离分为4个级别:

    读未提交 问题 脏读

    读已提交 解决 脏读 不可重复读

    可重复读 解决 不可重读 幻读

    串行化 解决一切问题 加锁 效率低

    一致性: 在事务开始之前和事务结束以后,数据库的完整性没有被破坏.

    例如: 我们多种方式对银行账户的余额进行多次同时操作,最终余额应该是我们所预期的结果,不能出现错误.

    mysql并发操作的问题:

    1.脏读 读到了垃圾数据 A事务读到B事务 未提交的数据

    2.不可重复读 A事务开启后 读取两次数据,结果两次读到的内容不一样( 预期的效果是A在同一个事务中读取到数据应该是一样)

    3.幻读 A事务开启后, 读取到的两次数据数量不一致

    事务隔离级别:

    读 未提交: A 可以读到B未提交的数据 问题: 会有脏读 几乎不用

    读已提交: A不能读到B为提交的数据,只能读到B已提交的数据. 解决了脏读问题, 同时会发生不可重复读问题

    可重复读: A事务开启后,第一次读到某个数据后,那么在这个事务中,第二次再查询同样的数据时,和原来是一致,重复读. 解决了不可重复问题

    串行化: 解决所有问题, 一次只允许一个事务进行操作 是最安全的,但是效率是最低的.

    更多相关内容
  • 1、事物四大特性(ACID)原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的...

    1、事物四大特性(ACID)

    原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。

    一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态。

    隔离性(isolation):一个事务所做的修改在最终提交以前,对其他事务是不可见的。

    持久性(durability):一旦事务提交,则其所做的修改就会永久保存到数据库中。此时即使系统崩溃,修改的数据也不会丢失。

    2、事务的隔离级别

    Read uncommitted

    字面意思是读未提交,一个事务可以读取另一个未提交事务的数据,即出现脏读。

    Read committed

    字面意思是读提交,一个事务要等另一个事务提交后才能读取数据,也就是不可重复读(每次读取的结果不一样)。若有事务对数据进行更新(UPDATE)操作时,读操作事务要等待这个更新操作事务提交后才能读取数据,可以解决脏读问题。

    Repeatable read

    字面意思是重复读,就是在开始读取数据(事务开启)时,不再允许修改操作,也就是幻读。重复读可以解决不可重复读问题。不可重复读对应的是修改,即UPDATE操作。但是可能还会有幻读问题。因为幻读问题对应的是插入INSERT操作,而不是UPDATE操作。

    Serializable

    字面意思序列化,Serializable 是最高的事务隔离级别,在该级别下,事务串行化顺序执行,可以避免脏读、不可重复读与幻读。但是这种事务隔离级别效率低下,比较耗数据库性能,一般不使用。

    大多数数据库默认的事务隔离级别是Read committed,比如Sql Server , Oracle。MySQL的默认隔离级别是Repeatable read。

    以上4种事务隔离级别,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。

    展开全文
  • MySQL事务四大特性以及如何保证

    千次阅读 2022-03-30 09:46:45
    1.MySQL事务四大特性: 我们以从A账户转账50元到B账户为例进行说明一下ACID,四大特性。 原子性 原子性是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做。即要么转账成功,要么转账失败,...

    1.MySQL事务四大特性:

    我们以从A账户转账50元到B账户为例进行说明一下ACID,四大特性。

    原子性

    原子性是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做。即要么转账成功,要么转账失败,是不存在中间的状态!
    如果无法保证原子性会怎么样?
    OK,就会出现数据不一致的情形,A账户减去50元,而B账户增加50元操作失败。系统将无故丢失50元~

    隔离性

    隔离性是指多个事务并发执行的时候,事务内部的操作与其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

    持久性

    持久性是指事务一旦提交,它对数据库的改变就应该是永久性的。接下来的其他操作或故障不应该对其有任何影响。

    一致性

    致性是指事务执行前后,数据处于一种合法的状态,这种状态是语义上的而不是语法上的。
     

    2:MySQL如何保证ACID?

    从数据库层面上说,一致性是最终目的,数据库通过原子性、隔离性、持久性来实现一致性。

    但是,如果你在事务里故意写出违反约束的代码,一致性还是无法保证的。例如,你在转账的例子中,你的代码里故意不给B账户加钱,那一致性还是无法保证。因此,还必须从应用层角度考虑

    原子性:

    Innodb中的undo log可以是实现原子性的关键,当事务回滚时会撤销所有已经执行完毕的sql语句,但是需要记录回滚的日志信息。

    例如

    • (1)当你delete一条数据的时候,就需要记录这条数据的信息,回滚的时候,insert这条旧数据

    • (2)当你update一条数据的时候,就需要记录之前的旧值,回滚的时候,根据旧值执行update操作

    • (3)当你insert一条数据的时候,就需要这条记录的主键,回滚的时候,根据主键执行delete操作

    undo log记录了这些回滚需要的信息,当事务执行失败或调用了rollback,导致事务需要回滚,便可以利用undo log中的信息将数据回滚到修改之前的样子。

    持久性:

    innodb中的redo log可以保证持久性。Mysql是先把磁盘上的数据加载到内存中,在内存中对数据进行修改,再刷回磁盘上。如果此时突然宕机,内存中的数据就会丢失。

    redo log解决上面的问题。当做数据修改的时候,不仅在内存中操作,还会在redo log中记录这次操作。当事务提交的时候,会将redo log日志进行刷盘(redo log一部分在内存中,一部分在磁盘上)。当数据库宕机重启的时候,会将redo log中的内容恢复到数据库中,再根据undo log和bin log内容决定回滚数据还是提交数据。

    隔离性:

    Mysql利用锁和MVCC多版本并发控制(Multi Version Concurrency Control)来保证隔离性。

    一个行记录数据有多个版本对快照数据,这些快照数据在undo log中。

    如果一个事务读取的行正在做DELELE或者UPDATE操作,读取操作不会等行上的锁释放,而是读取该行的快照版本。
    但是有一点说明一下,在事务隔离级别为读已提交(Read Commited)时,一个事务能够读到另一个事务已经提交的数据,是不满足隔离性的。但是当事务隔离级别为可重复读(Repeateable Read)中,是满足隔离性的。

    展开全文
  • MySQL事务四种特性

    2022-01-18 19:48:19
    首先,我们常用的mysql存储引擎是,myisam和innodb两种引擎,想要使用事务就要用innodb引擎,事务一共有四种包括(原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability))简称acid!

    MySQL事务四种特性

    首先,我们常用的mysql存储引擎是,myisam和innodb两种引擎,想要使用事务就要用innodb引擎,事务一共有四种包括(原子性(atomicity),一致性(consistency),隔离性(isolation),持久性(durability))简称acid!

    原子性(atomicity)

    原子性是什么

    事务的最小工作单元,要么全成功,要么全失败。

    mysql是如何保证事务的原子性的

    • mysql数据库通过undo log日志来保证事务的原子性!当事务开始时 undo log会将当前版本记录成日志,undo log日志记录了回滚操作的日志,如果事务失败,则执行undo log日志上的回滚内容。在事务提交之后,undolog并不立即被删除,而是放入待清理的链表,由purge线程判断是否由其他事务在使用undo段中表的上一个事务之前的版本信息,决定是否可以清理undo log的日志空间。

    一致性(consistency)

    一致性是什么

    事务开始和结束后,数据库的完整性不会被破坏。

    怎么保证一致性

    • 一致性就是:应用系统从一个正确的状态到另一个正确的状态.而ACID就是说事务能够通过AID来保证这个C的过程.C是目的,AID都是手段

    隔离性(isolation)

    隔离性是什么

    不同事务之间互不影响

    怎么保证隔离性

    mysql中有四种隔离级别,利用这四种隔离级别来满足隔离性,默认的隔离级别是可重复读。
    四种隔离级别

    查看当前会话隔离级别的SQL语句

    查看当前会话的 隔离级别:
    select @@tx_isolation;
    查看系统的隔离级别:
    select@@global.tx_isolation;
    设置会话的隔离级别:
    set session transaction isolation level 隔离级别;
    设置当前系统的隔离级别:
    set global transaction isolation level read 隔离级别
    隔离级别为想要设置的隔离级别英文名称

    脏读

    • 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,修改的数据先存储到Buffer pool中,还没有存粗到磁盘上。这时,另外一个事务也访问这个数据,然后使用了这个数据。
      MySQL在更新数据的时候,都是将数据先从磁盘拉到buffer pool中, buffer pool在内存中,在buffer pool中修改完成后再写到磁盘中

    如何解决脏读

    • 事务隔离级别设置为:read committed及以上。
    • 读取时加排它锁(select…for update),事务提交才会释放锁,修改时加共享锁(update …lock in share
      mode)。加排它锁后,不能对该条数据再加锁,能查询但不能更改数据。mysql
      InnoDB引擎默认的修改数据语句,update,delete,insert都会自动给涉及到的数据加上排他锁,select语句默认不会加任何锁类型,如果加排他锁可以使用select
      …for
      update语句,如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁,共享锁下其它用户可以并发读取,查询数据。但不能修改,增加,删除数据。资源共享。

    不可重复读

    • 不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。(重点是修改,同样的条件,你读取过的数据,再次读取出来发现值不一样了),mysql使用MVCC解决不可重复读。

    幻读

    • 幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。(重点是删除或者新增,同样的条件,第1 次和第 2 次读出来的记录数不一样)mysql使用MVCC和当前读解决幻读问题。

    持久性(durability)

    持久性是什么

    事务提交后,对数据的修改是永久性的,即使系统故障也不会丢失。

    怎么保证持久性

    • mysql写入数据的时候,每次都是把数据先写入内存,再往磁盘写 redolog,在适当时的时候,把数据写入磁盘。即便断电,重启mysql还是可以通过redolog来恢复数据。
    展开全文
  • MYSQL事物四大特性

    2021-01-18 19:33:40
    MYSQL事物四大特性(ACID)1.什么是事物?事务(Transaction)是并发控制的基本单位。所谓的事务,它是由单独单元的一个或者多个sql语句组成,在这个单元中,每个mysql语句是相互依赖的。而整个单独单元作为一个不可...
  • MYSQL事物处理(四大特性

    万次阅读 2018-09-12 16:36:55
    什么是事物MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作...
  • 关系型数据库mysql 事务四大特性一、首先我们先说一下什么是事务在mysql中对数据进行增删改查中的任何一次操作的过程都可以被认为是一次事务,事务是一系列严密的操作,事务的结束有两种结果,当事务中的所有步骤...
  • MySQL事务的四大特性和隔离级别

    千次阅读 2022-03-30 15:19:54
    一、事务的四大特性(ACID) 1、原子性(Atomicity) 原子性是指事务包含的一系列操作要么全部成功,要么全部回滚,不存在部分成功或者部分回滚,是一个不可分割的操作整体。 2、一致性(Consistency) 一致性是可以理解为...
  • MySql 事物四大特性

    2020-02-01 10:31:57
    就理解的四大特性如何实现进行一下分析。首先说:四大特性指的是哪四个特性: 原子性(Atomicity) 一致性(Consistency) 隔离性(Isolation) 持久性(Durability) 原子性 根据定义,原子性是指一个事务是一个...
  • mysql事务的四大特性

    2020-12-11 19:50:01
    事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。 原子性:一个事务(transaction)中的所有操作,...
  • MySQL 事务的四大特征

    2022-02-03 21:06:19
    1、原子性:不可分割的最小操作单位,要么同时成功,要么同时失败。...2、持久性:当事物提交或回滚后,数据库会持久化的数据保存。 3、隔离性:多个事务之间相互独立。 4、一致性:事务操作前后,数据总量不变 ...
  • 最详细最细节的数据库事务(四大特性)(隔离级别)
  • 1 、事物操作数据库的四大特性(ACID)1.原子性 (Atomicity)原子性:就是事物的所包含的所有操作,要么全部成功,要么全部失败回滚。2.一致性 (Consistency)一致性:简单来说就是在事物执行前和执行后,必须保持数据的...
  • MySQL 事务的特性

    2021-10-13 21:19:14
      MySQL 事务具有四大特性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 1、原子性(Atomicity)   原子性是指事务包含的所有操作要么全部成功,要么全部...
  • 一篇文章掌握MySQL事务的四大特性

    千次阅读 2020-09-22 08:50:12
    一、事务的四个特性 二、实现方式 2.1 原子性 事务的原子性是通过undo log日志进行实现的。当事务需要回滚时,InnoDB引擎就会调用undo log进行SQL语句的撤销,实现数据的回滚。 undo log是InnoDB引擎提供的日志。当...
  • 事物四大特性(ACID)介绍一下? 1.原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 2.一致性:执行事务前后,数据保持一致,多个事务对同一个数据读取...
  • MySQL事务的四大特性及其实现方式

    千次阅读 多人点赞 2020-09-08 12:04:47
    MySQL事务的四大特性及其实现方式 (一)简述 事务是MySQL区别于NoSQL的重要特征,是保证关系型数据库数据一致性的关键技术。事务可看作是对数据库操作的基本执行单元,可能包含一个或者多个SQL语句。这些语句在执行...
  • mysql事务的4大特性

    2021-08-20 06:16:43
    事务的四大特性(简称ACID) 1.原子性(Atomicity) 事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。 2.一致性(Consistency) 事务执行的结果必须是使数据库从一个一致性状态变道变到另一个一致...
  • Mysql事务: 1、若未显示说明start transaction,则事务默认自动提交,我们所写每一句sql都是一个自动提交的事务; 2、若是执行(create table / drop table / alter table)、lock tables等语句,则会强制执行commit...
  • 1、事务的四大特性: 事务四大特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)四个特性,简称 ACID. 1.1、原子性(Atomicity) 原子性是指事务包含的所有操作要么...
  • 2、四大特性介绍通俗易懂解释。 原子性:何为原子性?事物执行过程中要么都成功,要么都失败。 一致性:数据前后保持一致,举例如:转账业务,A、B转账,执行转账操作前后金额总和保持一。 隔离性:数据库提供隔离...
  • 事务四大特性 原子性(Atomicity) 原子性指整个事务是不可分割的工作单位。在事务中所有数据库操作都执行成功,才算整个事务成功。事务中任何一个sql语句执行失败,已经执行成功的sql语句也必须被撤销,数据库状态...
  • package mysql;import java.sql.Connection;import java.sql.SQLException;import java.sql.Savepoint...//事物特性ACID//原子性,指事务中的操作要么都发生,要么都不发生//一致性。指事务前后数据的完整性必须保持...
  • 事务mysql中,事务是一个最小的不可分割单元.事务能够保证一个业务的完整性.eg:银行转账a -> -100update user set money=money-100;b -> +100update user set money=money+100;实际程序中,如果只有一条语句执行...
  • MySQL数据库事务的四大特性以及事务的隔离级别

    万次阅读 多人点赞 2018-08-18 23:16:11
    一、事务的四大特性(ACID) 1、原子性(Atomicity) 2、一致性(Consistency) 3、隔离性(Isolation) 4、持久性(Durability) 二、事务的隔离级别(默认事务级别为可重复读) MySQL数据库的四种事务隔离...
  •    使用银行转账业务来进行详细解释事物四大特性:   如果要进行转账,从A用户大都B账户转200元,那么就要先给A账户进行减去200元,在给B账户增加200元。在进行转账之前首先要看A账户是否有200元。 银行转账...
  • 数据库事务transanction正确执行的四个基本要素。ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,780
精华内容 1,912
关键字:

mysql事物的四大特性

mysql 订阅