音频文件放到网站空间里生成链接怎么做,中国纪检监察报范耀庚,望城区住房和城乡建设局门户网站,湘潭网络营销一、事务
1.1、概述 事务是一组操作的集合#xff0c;它是一个不可分割的工作单位#xff0c;事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求#xff0c;即#xff1a;这些操作要么同时成功#xff0c;要么同时失败。 例如: 张三给李四转账1000块钱…一、事务
1.1、概述 事务是一组操作的集合它是一个不可分割的工作单位事务会把所有的操作作为一个整体一起向系统提交或者撤销操作请求即这些操作要么同时成功要么同时失败。 例如: 张三给李四转账1000块钱张三银行账户的钱减少1000而李四银行账户的钱要增加 1000。 这一组操作就必须在一个事务的范围内要么都成功要么都失败。 1.2、为什么需要事务 转账理想情况 转账这个操作, 需要按照以下三个步骤来完成 1查询张三账户余额 2 张三减少 1000; 3 李四 增加1000; 转账异常情况 异常情况, 也是分为以下这么三步来完成 , 在执行第三步时报错了 , 这样就导致张三减少1000 块钱 , 而李四的金额没变 , 这样就造成了数据的不一致 , 就出现问题了,如下 解决 为了解决上述的问题就需要通过数据库的事务来完成我们只需要在业务逻辑执行之前开启事务执行完毕后提交事务。如果执行过程中报错则回滚事务把数据恢复到事务开始之前的状态这样就保证了张三和李四账户的钱是正确的了不会出现一个账户的钱减少了而另外一个账户的钱却没有增加的情形。 注意事项 默认MySQL的事务是自动提交的也就是说当执行完一条 DML 语句时 MySQL 会立即隐式的提交事务。 1.3、四大特性 原子性 Atomicity 事务是不可分割的最小操作单元要么全部成功要么全部失败。 一致性 Consistency 事务完成时必须使所有的数据都保持一致状态。 隔离性 Isolation 数据库系统提供的隔离机制保证事务在不受外部并发操作影响的独立环境下运行。 持久性 Durability 事务一旦提交或回滚它对数据库中的数据的改变就是永久的。 上述就是事务的四大特性简称 ACID 。 1.4、案例演示
1.4.1、数据初始化
use vhr;drop table if exists account;
create table account(id int primary key AUTO_INCREMENT comment ID,name varchar(10) comment 姓名,money double(10,2) comment 余额
) comment 账户表;insert into account(name, money) VALUES (张三,2000), (李四,2000);
1.4.2、事务相关命令 1查看默认的事务提交方式默认为1表示自动提交 select autocommit; 2修改为手动提交 set autocommit 0; 3开启事务 start transcation 或者 begin; 4提交事务 commit 5回滚事务 rollback 1.4.3、未控制事务案例 正常情况 异常情况 1.4.4、控制了事务案例 注意事项先把张三、李四的账户金额恢复为2000元 1正常执行提交事务 2异常执行回滚事务 1.5、事务并发
1.5.1、概述 生产环境中的数据操作千变万化尤其是对于双11、双12这种大型的全名参与的场景事务并发操作更是数不胜数这就为事务的并发问题埋下了伏笔总的来说MySQL中的事务并发会产生3类问题即脏读、不可重复读、虚读幻读。 1.5.2、脏读 一个事务读到了另外一个事务还没有提交的数据。 1.5.2、不可重复读 一个事务先后读取同一条记录但两次读取数据的结果不同称之为不可重复读。 1.5.3、虚读幻读 一个事务按照相同的条件查询数据第一次查询时没有查询到另一个事务执行完insert后再次查询又查询到了好像出现了幻影称之为虚读幻读。 1.6、事务隔离级别
1.6.1、概述 为了解决并发事务所引发的各种问题在数据库中引入了事务隔离级别的功能主要分为如下几种 注意事项事务隔离级别越高数据越安全但是性能越低! 1.6.2、事务隔离级别相关指令 1查看MySQL默认的事务隔离级别 select transaction_isolation; 2设置事务的隔离级别 SET [ SESSION | GLOBAL ] TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }