首页 » 网站推广 » phpmysql事务特征技巧_MySQL 事务的特点及担保手段

phpmysql事务特征技巧_MySQL 事务的特点及担保手段

访客 2024-11-10 0

扫一扫用手机浏览

文章目录 [+]

这些SQL组成一个事情单元,要么“全部” 实行,要么“全不” 实行。

事务的特性-ACID

A -- Atomicity 原子性

phpmysql事务特征技巧_MySQL 事务的特点及担保手段

事务中的全部操作,要么全成功实行,要么全部失落败。

phpmysql事务特征技巧_MySQL 事务的特点及担保手段
(图片来自网络侵删)

也便是说,不管事务的过程、逻辑多么繁芜,实行韶光多么长,终极的结果只有“成功”或者“失落败”,不会涌现数据改了一半的情形

C -- Consistency 同等性

数据是从一个同等的状态转为另一个同等的状态

可以理解为,数据变动前后,总是符合同一个标准

I -- Isolation 隔离性

事务的隔离性,实际业务中,事务肯定是并发实行的。

也便是:你干你的活儿,我干我的活儿,井水不犯河水。
当两个事务或者多个事务要浸染于同一个工具时,会有“锁”的观点在个中(这个稍后再说)

D -- Durability 持久性

事务提交后,其对数据的修正便是永久性的。
后续的操为难刁难之前的操作无任何影响

ACID的担保手段

①、同等性的担保

数据库方面:不难明得,如果原子性、隔离性、持久性都担保了,那么同等性也会被担保

业务代码层面:业务代码该当是逻辑合理的,比如我给你转钱的场景,我这边钱数减少100后,代码逻辑中你的钱数就要增多100

数据层面:数据的校验担保

②、原子性的担保

undo log 回滚日志

日志中会记录你所有的操作和操作内容,须要回滚时,根据该日志实行即可。
比如 当你insert一条记录后,如果须要事务回滚,则可根据undo log 将这条记录 delete

③、持久性的担保

redo log 对数据操作时,不仅在内存中有该数据,redo log中也有,如果事务实行时宕机,内存中的数据丢失,在数据库重启时会根据redo log中规复数据

④、隔离性的担保

通过 “锁” 和 MVCC (Mutil-Version Concurrency Control,多版本并发掌握)

锁:共享锁(读锁)和排他锁(写锁)

(暂时先记录到此,后续连续补充)

标签:

相关文章

招商蛇口中国房地产龙头企业,未来可期

招商蛇口(股票代码:001979),作为中国房地产企业的领军企业,自成立以来始终秉持“以人为本,追求卓越”的经营理念,致力于打造高...

网站推广 2025-02-18 阅读0 评论0