当前位置: 首页 > wzjs >正文

佛山建设专业网站湖南seo优化推荐

佛山建设专业网站,湖南seo优化推荐,王烨明,微信公众平台注册官网登录入口什么是事务 因为事务的存在,可以使得多条sql语句一起执行,并且只有全部执行成功或全部执行失败俩种结果,保证了数据的安全,也使得这些sql语句拥有了原子性,隔离性,一致性,持久性(AC…

什么是事务

因为事务的存在,可以使得多条sql语句一起执行,并且只有全部执行成功或全部执行失败俩种结果,保证了数据的安全,也使得这些sql语句拥有了原子性,隔离性,一致性,持久性(ACID)

事务的ACID特性

Atomicity(原子性):一个事务中的所有操作,要嘛全部都执行失败,要嘛全部执行成功这俩中结果,不会存在某些执行成功,某些执行失败的情况,如果执行失败,能确保数据能回滚(RollBack)搞事务执行之前,就好像这个事务没有执行过一样

Consistency(一致性):事务执行开始和结束之后,数据库的完整性不会被破坏,也就是说数据的写入规则完全符合数据库的预期,包括数据的精度,关联性,约束条件,还会有如果数据库崩溃了应该如何恢复

Isolation(隔离性):数据库允许了多个事务同时的对数据进行读取的修改,那么隔离性就确保他们在对数据进行修改或者读取的时候的数据的准确性,不会因为多线程操作而引起线程安全问题,可以设置不同的隔离性来确保在不同场景下数据库的性能和安全性

Durability(持久性):事务在结束之后数据被储存在响应的存储介质中,确保了即使发生故障数据也不会丢失

事务的隔离性和隔离级别

当同一个数据库被多个事务访问,并对同一张表的同同一条数据进行修改,那就不可避免的会出现不同事务相互影响的情况出现,因为这样,那么不同的事务之间就需要相互隔离起来,这就是隔离性

隔离级别

READ UNCOMMITED读未提交
READ COMMITED读已提交
REPEATABLE READ可重复读
SERIALIZABLE序列化

表格从上到下对应的数据库的并发性能递减

不同的隔离性存在的问题

在sql中开启一个事务之后,在未进行显示提交之前,所有对数据库的操作都不会直接写入数库中,而是会处于暂存状态,只有在提交了事务之后,才会真正的将数据写入到数据库中

READ UNCOMMITED 读未提交

读未提交在隔离级别中最低的,他允许了事务读取到处于暂存状态的数据,但是这样就会有脏读的错误出现

事务A读到了事务B处于暂存状态的数据,那么如果事务B之后将数据回滚的话,那么事务A就读到了脏数据,这是不存在的数据,这种现象就叫做脏读

那么为了解决脏读的情况,可已使用读已提交隔离

READ COMMITTED 读已提交

读已提交只能读取其他事务提交之后的数据,这样就避免了因为读取到了未提交的数据而引起的脏读,但是这样有会引起一个新的问题,不可重复读

当事务A在数据库中读到了数据C,这之后事务B对数据C进行了修改为D并提交,那么这是事务A再读取数据C,结果发现结果为D了,这样就导致了在同一个事务中俩次相同的读取获得的结果不同,这中现象叫做不可重复读

那么为了解决脏读和不可重复读的问题,可以使用可恶重复读

REPEATABLE READ 可重复读

为了解决不可重复读的问题,可重复读加入了行级锁,可重复锁会给事务使用过的数据按行为单位上锁,这样就不允许别的事务去使用,于是就解决了不可重复读的问题,可是这样也会引起新的问题,幻读

当事务A在对数据使用区域查找到CDE之后,CDE都是被上锁,那么事务B不能修改CDE但是,B可以插入数据F到C之后,那么在B提交之后数据变成了CBDE了,这时事务A又使用相同的查询,结果发现结果为CBDE了,这俩次查询到了数据又不同了,这种现象就叫做幻读

那么为了解决脏读,不可重复读,幻读这些问题,就可以使用最强的隔离方式序列化

SERIALIZABLE 序列化

序列化将所有的事务变为串行执行, 必须等上一个事务限制行玩才能接着执行下一个,没有了并发执行的能力,也就不有并发执行带来的问题,安全性最高

事务的相关sql语句

开启一个事务

start transaction;

提交事务

commit;

查看会话的隔离等级

SELECT @@SESSION.transaction_isolation;

查看全局的隔离等级

SELECT @@GLOBAL.transaction_isolation;

设置会话隔离级别

SET SESSION transaction isolation level serializable(隔离级别);

设置全局隔离级别

SET GLOBAL transaction isolation level serializable;

设置事务的访问模式

设置事务只读

SET GLOBAL transaction isolation level read only;

设置只能读写

SET GLOBAL transaction isolation level read write;

end~~

http://www.dtcms.com/wzjs/109441.html

相关文章:

  • 对外贸网站建设的建议线下推广方法有哪些
  • 青海玉树网站建设百度网址大全官网旧版
  • 绵阳公司网站建设手机百度网盘下载慢怎么解决
  • 网站备案要钱吗可以引流推广的app
  • 佛山网站优化搜索百度关键词优化方法
  • 宁晋网站建设设计杭州网站推广优化公司
  • 怎样访问简版网站怎么样在百度上免费推广
  • 垂直b2c网站有哪些白云区最新疫情
  • 家政服务 技术支持 东莞网站建设小程序拉新推广平台
  • 苏州网站设计公司有哪些微信运营工具
  • 网站承建商有哪些百度关键词排名点击器
  • 重庆专业网站推广如何做一个自己的网站
  • 网站添加微信浏览器打开是2345网址导航
  • 小制作小灯笼seo资讯推推蛙
  • 专业医院网站建设深圳疫情防控最新消息
  • 深圳网站建设制作企业百度关键词推广教程
  • 个人做网站推广竞价托管公司
  • 人民日报客户端阅读seo站长之家
  • 微网站制作方案福州网络推广运营
  • 西乡城建局网站seo公司费用
  • ui培训机构哪家好seo技术培训教程视频
  • 哪一个网站有做实验的过程如何百度收录自己的网站
  • 西楚房产网宿迁房产网搜索引擎优化的主要工作有
  • 汽车门户网站有哪些游戏推广在哪里接活
  • dw如何做网站后台谷歌搜索优化
  • 山东泰安最新疫情seo云优化
  • 百度站长提交网站地图怎么在百度上发布自己的信息
  • 货到付款网站建设阿里巴巴seo排名优化
  • 中铁建工集团有限公司官网网站seo关键词排名优化
  • 石家庄建设公司网站在线crm网站