黄骅港客运站电话号码,影视网站怎么做app,哪个网站做刷手最好,17网站一起做网店后台是什么
事务是一种保护连续操作同时满足#xff08;实现#xff09;的一种机制#xff0c;用来保护数据的完整性#xff0c;只适用于数据操作#xff0c;不适用于结构操作#xff0c;只有
innodb引擎的表具有事务安全的机制。就是说#xff0c;在一个事务中做一系列的…是什么
事务是一种保护连续操作同时满足实现的一种机制用来保护数据的完整性只适用于数据操作不适用于结构操作只有
innodb引擎的表具有事务安全的机制。就是说在一个事务中做一系列的sql操作当且仅当一系列sql都执行成功时才会对数据
库的数据进行对应的持久化
事务的特性
事务有四大特性ACID
Aatomic原子性事务的整个操作是一个整体不可分割要么全部成功要么全部失败Cconsistency一致性事务操作前后数据表中的数据没有变化Iisolation隔离性事务操作是互相隔离不受影响的Ddurability持久性数据一旦提交不可改变永久的改变数据表数据
事务的分类
事务可分为自动事务和手动事务mysql中默认是自动事务
事务通过autocommit变量控制当autocommit off/0 时表示手动事务下边介绍一下查看自动事务是否开启和开启事务
操作查看事务sqlshow variables like autocommit;结果
操作开启或关闭事务sql set autocommit 0; set autocommit 1 结果
事务的操作
# 使用事务
-- 开启事务(系统将将要进行的操作不直接写入到数据表而是现存在事务日志)
start transaction;-- 执行对应的sql
update user set name chaizepeng111 where id5;
update card set card_number 111111111 where id 4;-- 提交或者回滚
commit;# 回滚点的设置
savepoint 回滚点名字
savepoint a;-- 回滚到指定的回滚点
rollback to a;
事务的原理
事务的实现借助的是一个临时的日志文件当开始事务时发送的sql会存储到日志文件中存储到日志文件时执行sql将结果
存储到日志文件当查询时会将返回的结果经过日志文件加工后再返回当commit时临时文件中的结果就会同步到数据库
中而如果rollback时则会删除临时文件不做任何操作
事务的隔离级别
在并发环境下使用事务时就可能产生问题问题大致分为3类如下
脏读事务A读到了事务B还未提交的数据不可重复读在一个事务里面读取了两次某个数据读出来的数据不一致幻读在一个事务里面的操作中发现了未被操作的数据
为了解决以上问题就出现了事务的隔离级别
DEFAULT默认隔离级别READ_UNCOMMITTED读未提交即能够读取到没有被提交的数据一般不用READ_COMMITED读已提交即能够读到那些已经提交的数据可防止脏读一般使用此隔离级别REPEATABLE_READ重复读取即在数据读出来之后加锁读取数据之后自动加锁当前事务为结束之前其他事务不可访问解决了脏读、不可重复读的问题SERLALIZABLE串行化最高的事务隔离级别一个事务一个事务挨着执行效率低不用
介绍一下mysql下如何查看和设置事务的隔离级别
解释查看事务的隔离级别sqlselect tx_isolation;结果
解释设置当前会话的事务隔离级别sqlSET SESSION TRANSACTION ISOLATION LEVEL Read committed;结果
解释设置全局的事务隔离级别sqlSET GLOBALTRANSACTION ISOLATION LEVEL Read committed;结果
补充事务的隔离级别设置时的可选参数Read uncommitted 、Read committed 、Repeatable read 、Serializable