• MySQL事务


    事务隔离级别

    事务是什么?

    事务是一组数据库操作,它被视为一个不可分割的工作单元。事务要么全部成功完成,要么全部失败回滚,保证了数据库的一致性。通常,事务操作包括插入、更新、删除等,它们一起构成了一个逻辑操作单元。

    事务的基本要素(ACID)

    数据库事务指的是一组数据库操作,这些操作要么全部执行,要么全部回滚,以达到数据的一致性和完整性。事务必须满足四个特性,即ACID:

    1. 原子性(Atomicity):事务是“不可分割”的基本单位,要么全部执行成功,要么全部失败回滚。事务在执行中发生错误时,会回滚到事务开始前的状态。
    2. 一致性(Consistency):事务执行之后,系统状态必须满足所有的约束条件和完整性要求,确保数据的正确性。
    3. 隔离性(Isolation):多个事务之间相互隔离,每个事务不会被其他事务所干扰,保证每个事务的操作独立性。
    4. 持久性(Durability):事务一旦提交,对数据库的修改就是永久的,并且即使系统崩溃也不会丢失。

    在实际应用中,事务是确保数据完整性和安全性的重要手段。比如在对于银行转账操作中,将转出付款和转入收款两个操作用事务进行包裹,保证了一旦存在其中一个操作不成功,整个事务都不会被执行,从而维护了数据的一致性和完整性。另外,事务的实现方式包括基于锁和基于日志的两种方式,不同的数据库管理系统有不同的实现方式。

    使用

    要在MySQL中使用事务,你可以使用以下语句:

    • START TRANSACTIONBEGIN:用于开始一个新的事务。
    • COMMIT:用于提交事务,将所有修改保存到数据库。
    • ROLLBACK:用于回滚事务,撤销所有的修改。
    -- 开始一个新事务
    START TRANSACTION;
    
    -- 执行一系列数据库操作
    INSERT INTO customers (name, email) VALUES ('junfeng', 'junfeng@example.com');
    UPDATE accounts SET balance = balance - 100 WHERE account_id = 123;
    DELETE FROM orders WHERE order_id = 456;
    
    -- 提交事务
    COMMIT;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    事务的隔离级别

    1. READ UNCOMMITTED(读未提交)
      • 最低的隔离级别。
      • 允许一个事务读取另一个事务未提交的数据。
      • 可能导致脏读、不可重复读和幻读。
    2. READ COMMITTED(读已提交)
      • 允许一个事务读取已提交的数据,不允许读取未提交的数据。
      • 防止脏读,但可能出现不可重复读和幻读问题。
    3. REPEATABLE READ(可重复读)
      • 保证在一个事务内查询的数据在事务执行期间保持一致。
      • 防止脏读和不可重复读,但可能出现幻读问题。
    4. SERIALIZABLE(串行化)
      • 最高的隔离级别。
      • 事务之间是完全隔离的,防止所有并发问题,包括脏读、不可重复读和幻读。
  • 相关阅读:
    Ubuntu下安装TexLive+TexStudio
    oracle19c升级时区版本 32-->42,解决数据泵导数据TSTZ报错
    flutter 与H5交互
    轩辕:首个千亿级中文金融对话模型
    阿里云ACP知识点(三)
    ShardingSphere入门
    【Python】新手入门学习:详细介绍里氏替换原则(LSP)及其作用、代码示例
    想跟大家说点心里话~(希望大家都看一下谢谢各位 !!)
    中兴助力低空经济发展,携山东移动完成5G-A通感一体商用验证
    05 【函数(上)】
  • 原文地址:https://blog.csdn.net/qq_26347283/article/details/134072528