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

网站对接app建设部资质查询平台

网站对接app,建设部资质查询平台,公司网站如何制作,怎么建企业自己的网站吗目录 一、事物的理论 1.什么是事务 2.事务的属性#xff08;ACID#xff09; 3.再谈事务的本质 4.为什么要有事务 二、事务的操作 1.事务的支持版本 2.事务的提交模式 介绍 自动提交模式 手动提交模式 3.事务的操作 4.事务的操作演示 验证事务的回滚 事务异常…目录 一、事物的理论 1.什么是事务  2.事务的属性ACID 3.再谈事务的本质 4.为什么要有事务 二、事务的操作 1.事务的支持版本 2.事务的提交模式 介绍 自动提交模式 手动提交模式 3.事务的操作 4.事务的操作演示 验证事务的回滚 事务异常的自动回滚  一、事物的理论 场景一个火车售票系统从甲地到乙地的票总共有100张卖到最后的时候客户端A查看到还有一张票讲票买了回来但是还没有执行数据库更新操作的时候客户端B读取了数据库中票的个数数据发现也还有一张票那么就也卖走了那么客户端A和客户端B买的其实是同一张票那么就会出问题了。 场景在转账的时候客户端A转了1000元之后成功扣款了并更新了客户端A的余额数目但是没等到客户端B的数据库表更新余额增加1000元服务器出了一点点小问题那么就没有执行增加1000元的操作但是客户端A却少1000元这样就也是非常不合理的。  我们允许特殊情况的发生但是在特殊情况发生的时候应该有一套完整的解决方案来解决问题尤其是数据库在实际开发中都是处于高并发访问的环境下那么上述的场景就更应该保证不会出问题了。 1.什么是事务  事务的本质就是一组DML语句构成的。这些语句在业务逻辑上存在一定的相关性。例如上述的转账操作有修改A的数据库表修改B的数据库表等操作这些操作存在一定的相关性共同构成了一个业务逻辑这些SQL语句组合起来称为一个事务。所以对于事务不应该站在MySQL角度应该站在使用者的角度去看待使用者想要完成一个业务操作对应需要使用的一条或者多条SQL语句就是构成了一个事务。 对于事务的执行操作如果执行要么就是全部成功要么就全部失败事务中的多条DML语句是一个整体。MySQL提高一种机制保证我们可以达到这种效果。这样的话上述转账转到一半失败的场景那么就会将A的值减少1000的操作也视为失败就不会在操作数据库减少了。 2.事务的属性ACID 在实际应用场景中同一时间会有大量的业务包装成事务向MySQL服务器发送事务的请求处理而每个事务又包含了一个或多个SQL语句那么这些大量的SQL语句如果访问的是同一张表的话不加保护就一定会出问题和多线程的线程安全问题类似。还有就是我们在执行事务的时候执行到一般不想执行了该怎么办对于已经执行过的操作该如何处理呢 原子性一个事务中的所有操作要么全部完成要么全部不执行不会结束在中间的某个患者事务在执行过程中出错或者不想继续执行的时候会被回滚到事务开始前的一个状态所以说之前执行完的操作就会失效了。一致性在事务开始之前和事务结束以后数据库的完整性没有被破坏。这表示写入的数据必须完全复合所有的预设规则。隔离性数据库允许多个并发的事务同时对数据进行读写和修改的操作隔离性可以防止多个事务在并发执行的时候由于交叉执行而导致的数据不一致事务的隔离又分为了多个级别分为未提交、都提交、可重复读和串行化。持久性事务处理结束之后对数据的修改是永久性的即使系统故障也不会丢失因为已经持久化存放到磁盘当中了。 对于原子性和持久性比较好理解那么一致性是什么意思呢就是事务在执行操作之前就可以预期到执行的操作以及执行后的结果了并且执行的时候完全按照预期的操作执行。这样可以预期的操作就大大降低了出现问题的概率。对于一致性MySQL是没有做任务的操作和约束策略的而是通过原子性、持久性和隔离性去实现了事务的一致性也就是说满足了事务的其他三个属性也就满足了事务的一致性。所以说一致性单纯靠MySQL是无法实现了还需要用户的配合。 3.再谈事务的本质 事务的本质就是在ACID属性的加持下的一条或多条DML语句的集合。从底层来看的话数据库的使用者会使用特殊SQL语句指明事务的开始在MySQL内部其实就相当于是创建了一个事务对象使用者在事务内部输入的SQL语句都会放到事务对象的内部然后事务对象会放到数据库的事务运行队列当中。这样就把统一时间的大量事务进行了管理。 4.为什么要有事务 事务被设计出来是为了应用层服务的而不是数据库天然就有的当我们在执行一些业务操作的时候只有两种情况我们不需要考虑中间某一部出错该如何处理要么就都执行要么就都不执行方便了程序员的操作。数据库本身设计出来就是为了方便程序员对于数据的管理的如果让并发访问的安全问题以及操作的错误问题交给程序员来判断和解决的话那么数据库设计出来的意义就大大降低了会提高程序员的编程难度。 二、事务的操作 1.事务的支持版本 show engines; 市面上有很多数据库都支持事务的操作MySQL也是其中之一但是是否支持事务是按照存储引擎来划分的例如Innodb存储引擎就支持事务而MyISAM存储引擎就不支持事务的操作可以使用show engines查看数据库支持的存储引擎其中的Transactions字段就表示是否支持事务。 2.事务的提交模式 介绍 show variables like autocommit             //查看数据库的事务提交方式 set autocommit 1/0;                              //设置数据库的事务提交方式1为自动提交 事务提交分为手动提交和自动提交可以使用show variables like autocommit进行查看属性字段如果是ON的话就代表的是自动提交。 提交模式主要是控制事务的提交行为他决定了数据库操作是立即提交还是在显示的输入提交语句命令之后再去提交这里的提交也就是将SQL语句修改的数据库内容持久化的写入到内存当中再提交之前都是在数据库内存缓冲区当中进行操作的。 自动提交模式 在自动提交模式下每一条SQL语句都会被数据库认为是一个单独的事务并且在语句执行完成后自动提交不用我们显示的去输入提交命令了。但是这种只适用于简单的SQL语句一旦涉及到一些复杂的业务逻辑的话一条SQL语句作为的事务是无法去完成完整的业务的。 手动提交模式 在该模式下需要显示的使用BEGIN或者START TRANSACTION开启一个事务并进行操作各种SQL操作但是这些操作都是在内存中的最后需要手动的使用commit语句才可以完成事务的提交。如果我们设置的是自动提交的话在我们开启事务的时候不会受影响都需要我们手动进行提交操作。 3.事务的操作 启动事务 语句start transaction; / begin; 对于功能上的区别不大都是用来开启一个事务的但是begin属于SQL标准中的一个关键字用于开启一个事务他在大多数支持书屋的数据库系统中都可以使用有很好的兼容性。而前者则属于是MySQL独有的语法但是他可以在开启事务的同时为事务设置一些特性内容提高了更灵活的事务控制。  创建保存点 语句savepoint xxxx; 回滚操作 语句rollback [xx];      可以设置回滚到哪一个保存点如果不设置的话会回滚到最初。但是前提是该事务没有被提交如果提交了之后就无法进行事务的回滚操作了。  提交操作 语句commit; 事务的操作是原子性的而commit操作就是证明该操作完整的执行了那么所有对数据库的操作内容才会被永久的存放到磁盘当中。在没有提交之前所有的操作都是在MySQL的内存缓冲区当中进行的。 如果说在事务执行到一半的时候不管什么原因客户端退出了没有执行提交操作基于事务的原子性那么MySQL会自动回滚到事务的最开始也就相当于该事务什么都没有操作。可以使用ctrl \模拟异常终止MySQL数据库。 4.事务的操作演示 前提操作 //创建数据库表 mysql create table account (- id int primary key,- name varchar(20) default ,- blance decimal(10, 2) default 0.0- )engineinnodb charsetutf8; Query OK, 0 rows affected, 1 warning (0.05 sec)//设置隔离级别为读未提交--以后解释 mysql set global transaction isolation level READ UNCOMMITtED; Query OK, 0 rows affected (0.00 sec)//查看是否设置成功 mysql select transaction_isolation; ------------------------- | transaction_isolation | ------------------------- | REPEATABLE-READ | ------------------------- 1 row in set (0.00 sec)//重启系统 mysql quit; 验证事务的回滚 //开启事务 mysql begin; Query OK, 0 rows affected (0.00 sec)//设置保存点1 mysql savepoint save1; Query OK, 0 rows affected (0.00 sec)//插入数据1 mysql insert into account values(1, 张三, 100); Query OK, 1 row affected (0.00 sec)//设置保存点2 mysql savepoint save2; Query OK, 0 rows affected (0.00 sec)//插入数据2 mysql insert into account values(2, 李四, 200); Query OK, 1 row affected (0.00 sec)//查看此时的表内容 mysql select * from account; -------------------- | id | name | blance | -------------------- | 1 | 张三 | 100.00 | | 2 | 李四 | 200.00 | -------------------- 2 rows in set (0.00 sec)//回滚到保存点2 mysql rollback to save2; Query OK, 0 rows affected (0.02 sec)//查看数据发现在保存点2后插入的数据在表中查看不到了 mysql select * from account; -------------------- | id | name | blance | -------------------- | 1 | 张三 | 100.00 | -------------------- 1 row in set (0.00 sec)//回滚到事务的最开始 mysql rollback; Query OK, 0 rows affected (0.01 sec)//查看数据发现表中的所有数据都不见了 mysql select * from account; Empty set (0.00 sec) 事务异常的自动回滚  //客户端A------------------------------------------------------------- //开启事务 mysql begin; Query OK, 0 rows affected (0.00 sec)//插入两条数据 mysql insert into account values (1, 张山, 100); Query OK, 1 row affected (0.00 sec)mysql insert into account values (2, 李四, 100); Query OK, 1 row affected (0.00 sec)//异常终止客户端A mysql Aborted//客户端B------------------------------------------------------------- //客户端A终止前查看表 mysql select * from account; -------------------- | id | name | blance | -------------------- | 1 | 张山 | 100.00 | | 2 | 李四 | 100.00 | -------------------- 2 rows in set (0.00 sec)//终止后查看表 mysql select * from account; Empty set (0.00 sec)
文章转载自:
http://www.morning.mlcwl.cn.gov.cn.mlcwl.cn
http://www.morning.hlfgm.cn.gov.cn.hlfgm.cn
http://www.morning.jfymz.cn.gov.cn.jfymz.cn
http://www.morning.tslwz.cn.gov.cn.tslwz.cn
http://www.morning.rtspr.cn.gov.cn.rtspr.cn
http://www.morning.nkbfc.cn.gov.cn.nkbfc.cn
http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn
http://www.morning.gcysq.cn.gov.cn.gcysq.cn
http://www.morning.dgsx.cn.gov.cn.dgsx.cn
http://www.morning.znlhc.cn.gov.cn.znlhc.cn
http://www.morning.txlxr.cn.gov.cn.txlxr.cn
http://www.morning.pzrpz.cn.gov.cn.pzrpz.cn
http://www.morning.taipinghl.cn.gov.cn.taipinghl.cn
http://www.morning.pwwdp.cn.gov.cn.pwwdp.cn
http://www.morning.zxxys.cn.gov.cn.zxxys.cn
http://www.morning.rdpps.cn.gov.cn.rdpps.cn
http://www.morning.tlpsd.cn.gov.cn.tlpsd.cn
http://www.morning.pwghp.cn.gov.cn.pwghp.cn
http://www.morning.aowuu.com.gov.cn.aowuu.com
http://www.morning.dqpd.cn.gov.cn.dqpd.cn
http://www.morning.gzzncl.cn.gov.cn.gzzncl.cn
http://www.morning.nhpgm.cn.gov.cn.nhpgm.cn
http://www.morning.jqsyp.cn.gov.cn.jqsyp.cn
http://www.morning.clbzy.cn.gov.cn.clbzy.cn
http://www.morning.ddxjr.cn.gov.cn.ddxjr.cn
http://www.morning.yyzgl.cn.gov.cn.yyzgl.cn
http://www.morning.tdxnz.cn.gov.cn.tdxnz.cn
http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn
http://www.morning.qywfw.cn.gov.cn.qywfw.cn
http://www.morning.cczzyy.com.gov.cn.cczzyy.com
http://www.morning.nhzxr.cn.gov.cn.nhzxr.cn
http://www.morning.dzgyr.cn.gov.cn.dzgyr.cn
http://www.morning.mmqng.cn.gov.cn.mmqng.cn
http://www.morning.phwmj.cn.gov.cn.phwmj.cn
http://www.morning.qgqck.cn.gov.cn.qgqck.cn
http://www.morning.rsszk.cn.gov.cn.rsszk.cn
http://www.morning.rzcfg.cn.gov.cn.rzcfg.cn
http://www.morning.youyouling.cn.gov.cn.youyouling.cn
http://www.morning.ykmkz.cn.gov.cn.ykmkz.cn
http://www.morning.qbjgw.cn.gov.cn.qbjgw.cn
http://www.morning.nbmyg.cn.gov.cn.nbmyg.cn
http://www.morning.rrrrsr.com.gov.cn.rrrrsr.com
http://www.morning.wsnbg.cn.gov.cn.wsnbg.cn
http://www.morning.jwmws.cn.gov.cn.jwmws.cn
http://www.morning.lkkgq.cn.gov.cn.lkkgq.cn
http://www.morning.qcsbs.cn.gov.cn.qcsbs.cn
http://www.morning.kwxr.cn.gov.cn.kwxr.cn
http://www.morning.cfocyfa.cn.gov.cn.cfocyfa.cn
http://www.morning.hymmq.cn.gov.cn.hymmq.cn
http://www.morning.hfxks.cn.gov.cn.hfxks.cn
http://www.morning.jsrnf.cn.gov.cn.jsrnf.cn
http://www.morning.kpgft.cn.gov.cn.kpgft.cn
http://www.morning.btnmj.cn.gov.cn.btnmj.cn
http://www.morning.kzxlc.cn.gov.cn.kzxlc.cn
http://www.morning.qtzk.cn.gov.cn.qtzk.cn
http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn
http://www.morning.zhghd.cn.gov.cn.zhghd.cn
http://www.morning.rgxcd.cn.gov.cn.rgxcd.cn
http://www.morning.tbksk.cn.gov.cn.tbksk.cn
http://www.morning.gyxwh.cn.gov.cn.gyxwh.cn
http://www.morning.qdscb.cn.gov.cn.qdscb.cn
http://www.morning.pfnrj.cn.gov.cn.pfnrj.cn
http://www.morning.nkjxn.cn.gov.cn.nkjxn.cn
http://www.morning.qsswb.cn.gov.cn.qsswb.cn
http://www.morning.pzjrm.cn.gov.cn.pzjrm.cn
http://www.morning.fwqgy.cn.gov.cn.fwqgy.cn
http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn
http://www.morning.rcfwr.cn.gov.cn.rcfwr.cn
http://www.morning.kfysh.com.gov.cn.kfysh.com
http://www.morning.nkiqixr.cn.gov.cn.nkiqixr.cn
http://www.morning.srjgz.cn.gov.cn.srjgz.cn
http://www.morning.sbrxm.cn.gov.cn.sbrxm.cn
http://www.morning.nmqdk.cn.gov.cn.nmqdk.cn
http://www.morning.wnkjb.cn.gov.cn.wnkjb.cn
http://www.morning.pkmw.cn.gov.cn.pkmw.cn
http://www.morning.qrwdg.cn.gov.cn.qrwdg.cn
http://www.morning.youyouling.cn.gov.cn.youyouling.cn
http://www.morning.yzygj.cn.gov.cn.yzygj.cn
http://www.morning.fdmtr.cn.gov.cn.fdmtr.cn
http://www.morning.kfcz.cn.gov.cn.kfcz.cn
http://www.tj-hxxt.cn/news/268690.html

相关文章:

  • 网页制作与网站建设 pdf微信群推广
  • wordpress网站公告网站设计中主题有哪些作用
  • 银川市网站建设天津中冀建设集团有限公司网站
  • h5建站模板北京通州区网站制作
  • 佛山 网址开发 网站制作文件错误wordpress
  • 重庆建站服务商实实通信的视频网站怎么做
  • 比较好网站搭建公司怎样免费做网站
  • 企业档案网站建设wordpress 新页面打开
  • it彩票网站建设维护工程师温州市建设工程信息网
  • 廊坊市建设局官方网站中高风险地区名单
  • 视频网站建设费用明细想学做电商怎么加入
  • cms企业网站长沙建网站一般多少钱
  • 山东青岛网站制作设计兼职在哪平台可以接单
  • 投资网站建设方案营销策划师
  • 无站点推广就是不在网上推广英文站 wordpress seo优化
  • 山西省住房建设厅网站首页湖北工程建设信息网站
  • 做房产网站外包网页
  • 唐山网站设计360建筑网站
  • 英文网站建设公司清廉企业建设
  • 网站建设重要意义做家乡网站源代码
  • 电影网站开发在菲做平台网站
  • 平面设计相关的网站有哪些内容网站开发一般要用到哪些软件
  • 备案通过的网站公司网站如何被收录
  • 电子商务网站建设备案须知网站开发进度报告
  • 网站会员系统怎么做模版wordpress企业中文主题
  • 营销型网站建设公司推荐濮阳网站建设陈帅
  • 帮别人做网站要投资吗营销软文范例大全100字
  • 网站建设自查情况想找个专业做网站公司
  • 个人网站免费申请如果在wordpress
  • 网站建设8万属于资产吗个人微企业网站模板