导购网站怎么做视频教学,如何帮公司做网站,石家庄互联网公司排行榜,东莞市塘厦镇MySQL 事务主要用于处理操作量大#xff0c;复杂度高的数据。比如#xff0c;在学校管理系统中#xff0c;我们删除一个学生#xff0c;既需要删除学生的基本资料#xff0c;也要删除和该学生相关的信息#xff0c;如班级#xff0c;考试成绩等等#xff0c;这样#…MySQL 事务主要用于处理操作量大复杂度高的数据。比如在学校管理系统中我们删除一个学生既需要删除学生的基本资料也要删除和该学生相关的信息如班级考试成绩等等这样这些数据库操作语句就构成一个事务
事务
在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。 一个事务是由一条或者多条对数据库操作的SQL语句所组成的一个不可分割的单元只有当事务中的所有操作都正常执行完了整个事务才会被提交给数据库;如果有部分事务处理失败那么事务就要回退到最初的状态因此事务要么全部执行成功要么全部失败。
事务的特点
事务是一组SQL语句的执行要么全部成功要么全部失败不能出现部分成功部分失败的结果。保证事务执行的原子操作。事务的所有SQL语句全部执行成功才能提交(commit)事务把结果写回磁盘上。事务执行过程中有的SQL出现错误那么事务必须要回滚(rolback)到最初的状态。
相关术语
BEGIN; 开启一个事务COMMIT; 提交一个事务ROLLBACK; 回滚一个事务到初始的位置SAVEPOINT point1; 设置一个名字为point1的保存点ROLLBACK TO point1; 事务回滚到保存点point1而不是回滚到初始状态SET TX_ISOLATION‘REPEATABLE-READ’; 设置事务的隔离级别SELECT TX_ISOLATION; 查询事务的隔离级别redo log重做日志保证数据库中的数据的修改是永久性的即使数据库因为故障出错也应该能够恢复数据undo log: 回滚日志。
查看/修改提交状态
select autocommit;如果是1就是自动提交如果我们涉及了事务就要改为手动提交
select autocommit0;事务的ACID特性 事务的原子性Atomic 事务是一个不可分割的整体事务必须具有原子特性及当数据修改时要么全执行要么全不执行即不允许事务部分的完成。 事务的一致性Consistency 一个事务执行之前和执行之后数据库数据必须保持一致性状态。数据库的一致性状态必须由用户来负责由并发控制机制实现。就拿网上购物来说你只有让商品出库又让商品进入顾客的购物车才能构成一个完整的事务。 事务的隔离性Isolation 当两个或者多个事务并发执行时为了保证数据的安全性将一个事物内部的操作与其它事务的操作隔离起来不被其它正在执行的事务所看到使得并发执行的各个事务之间不能互相影响。有四个隔离级别 读未提交read uncommitted 读已提交read committed 可重复读repeatable read 串行化serializable 事务的持久性Durability 事务完成(commit)以后DBMS保证它对数据库中的数据的修改是永久性的即使数据库因为故障出错也应该能够恢复数据
总结
ACD是由mysql的redo log和undo log机制来保证的I隔离性是由mysql实物的锁机制来实现保证的。
mysql最重要的是日志不是数据这也是为什么能够实现回滚提交以后宕机了还能保证数据一致性