贝利信息

什么是mysql事务_mysql事务基本概念

日期:2025-12-30 00:00 / 作者:P粉602998670
MySQL事务是InnoDB引擎支持的ACID特性操作单元,需显式开启并提交,确保数据一致性,但不保证业务逻辑正确且受长事务和跨库限制。

MySQL事务是一组逻辑上关联的SQL操作,作为一个不可分割的整体来执行。它的核心目标是确保数据在并发环境下的完整性与一致性——要么全部成功,要么全部失败,不存在中间状态。

事务必须满足ACID四大特性

原子性(Atomicity):事务是最小执行单元,内部所有操作不可拆分。比如转账时扣款和入账必须同时生效或同时撤销,不能只完成一半。

一致性(Consistency):事务前后,数据库始终处于合法状态。例如A、B账户总余额在转账前后必须保持不变,这是由业务规则定义的“一致”。

隔离性(Isolation):多个事务并发执行时互不干扰。MySQL通过隔离级别控制可见性,避免脏读、不可重复读和幻读等问题。

持久性(Durability):一旦事务提交,修改就永久保存到磁盘,即使系统崩溃也不会丢失。

事务依赖InnoDB存储引擎

MySQL默认的MyISAM引擎不支持事务,只有InnoDB引擎完整支持ACID特性。可通过SHOW ENGINES命令确认当前引擎是否支持transaction。

建表时需显式指定:
CREATE TABLE t1 (...) ENGINE=InnoDB;

事务的基本操作流程

MySQL默认开启自动提交(autocommit=1),每条SQL语句单独成一个事务。如需多语句协同,需手动控制:

事务不是万能的,有使用前提

事务无法解决所有问题: