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

天津正规制作网站公司企业网站设计调查问卷

天津正规制作网站公司,企业网站设计调查问卷,市体育局网站 两学一做,微软做网页的软件今天和同学讨论起数据库事务处理的问题#xff0c;感觉讨论中明白了一些#xff0c;有些知识看过了#xff0c;但是没有实际使用还是不理解。事务处理就是将一系列操作当做一个原子操作#xff0c;要么全部执行成功#xff0c;如果执行失败则保留执行期的状态。通过提交和…今天和同学讨论起数据库事务处理的问题感觉讨论中明白了一些有些知识看过了但是没有实际使用还是不理解。事务处理就是将一系列操作当做一个原子操作要么全部执行成功如果执行失败则保留执行期的状态。通过提交和回滚机制来实现操作如果全部执行成功通过提交执行commit结果就会记录到数据库中如果执行失败通过回滚操作rollback将发生错误之前的所有错误消除回退到原来状态。事务都应该具备ACID特征。所谓ACID是Atomic(原子性)Consistent(一致性)Isolated(隔离性)Durable(持续性)四个词的首字母所写下面以“银行转帐”为例来分别说明一下它们的含义原子性组成事务处理的语句形成了一个逻辑单元不能只执行其中的一部分。换句话说事务是不可分割的最小单元。比如银行转帐过程中必须同时从一个帐户减去转帐金额并加到另一个帐户中只改变一个帐户是不合理的。一致性在事务处理执行前后数据库是一致的。也就是说事务应该正确的转换系统状态。比如银行转帐过程中要么转帐金额从一个帐户转入另一个帐户要么两个帐户都不变没有其他的情况。隔离性一个事务处理对另一个事务处理没有影响。就是说任何事务都不可能看到一个处在不完整状态下的事务。比如说银行转帐过程中在转帐事务没有提交之前另一个转帐事务只能处于等待状态。持续性事务处理的效果能够被永久保存下来。反过来说事务应当能够承受所有的失败包括服务器、进程、通信以及媒体失败等等。比如银行转帐过程中转帐后帐户的状态要能被保存下来。注意Mysql支持的存储引擎中默认为MyISAM是不支持事务处理的一般都有InnoDB是支持事务型的。(1)如果对一个表进行操作的时候需要事务支持需要配置存储引擎为InnoDB等支持事务型的。create table XX() engineInnoDB;(2)默认情况下mysql是自动提交模式(autocommit1)此时会在每一条语句执行完毕后将所做修改立即提交此时的commit相当于没用的rollback只对前一句语句起作用其实也没用一条mysql语句默认也是原子操作没必要。如果设置默认事务处理需要将自动提交模式关闭即将autocommit设置为0.set autocommit0; 设置模式为关闭select autocommit; 查看值是否已经改变注意如果在客户端设置的话设置完之后断掉连接后再重连又恢复默认设置。每个客户端只能设置客户自己的。(3)如果自动提交模式是打开的则需使用语句start transaction; 开始事务处理XX1;XX2;commit; / rollback;来开始事务处理而如果设置为关闭则无需使用start transaction连续语句就为事务指导rollback或者commit。(4)注意创建、改变、删除数据库或者其中的数据定义语言以及锁有关的都不能成为事务的一部分如下面start transaction;insert into test1 values(8);create table test2(i int);insert into test1 values(8);rollback;html namecode执行一个事务处理当执行到要创建表时mysql会自动提交然后再执行创建语句。如果test1的i为主键则第三条语句出错回滚时test1还是插入成功且创建了表test2.(5)python中使用数据库最好采用这种形式import MySQLdbtry:conn MySQLdb.connect(hostlocalhost,userroot,passwdyour passwd,dbdbName)except MySQLdb.Error,e:print Mysql Error %d: %s % (e.args[0], e.args[1])else:pass #conn.close()try:curconn.cursor()cur.execute(set autocommit0) #cur.execute(start transaction)cur.execute(insert into test1 values(8))cur.execute(insert into test1 values(8))except MySQLdb.Error,e:conn.rollback()print Mysql Error %d: %s % (e.args[0], e.args[1])else:conn.commit()cur.close()conn.close()(6)并行处理问题Mysql是一个多用户的系统有多用户在同一时间访问统一数据表MySIAM采用的是数据表级的锁定标记来保证同一时间只有一个用户访问此表Innodb采用了数据行级的访问机制即两个用户可以对同一个表中不同行的数据同时进行修改而如果是同一行则先来的用户先锁住此行操作结束释放锁后下一个用户才能操作。(7)事务处理的隔离性问题InnoDB默认的隔离级别是repeatable read如果某个用户两次执行同一个select语句其结果是可重复的如果在事务期间有用户对所要读取的数据进行了操作那么也不会有显示比如一个存储引擎为innodb的表如果有一个客户用事务来select读取表数据另一个用户此时对表做了一个插入之类的操作第一个用户再进行同样的select读取时显示数据是没有变化的。(8)多语句操作非原子操作如上面(6)中会出现一个问题如果是一个事务操作读取数据后想对数据进行操作但是可能有另外一个人对此做了操作那再对此数据进行操作就不对了。此时需要明确加锁来锁住表防止别人更改数据执行结束后释放锁。lock tables XX write;XXXXXX;unlock tables;也可以使用相对更新代替绝对更新相对于当前值进行更新不根据上次的值算出一个绝对值进行更新。这样避免了多条语句的非原子操作。set a a - 3 XXXXXXXXXXX
http://www.zqtcl.cn/news/367915/

相关文章:

  • 如何对网站进行爬虫页面设计存在的问题
  • 知名网站建设加盟合作企业邮箱如何登录
  • asp net mvc做网站软文推广是什么
  • 张家口住房和城乡建设厅网站如何做点击赚钱的网站
  • 网站在建设中无法访问贵州碧江区住房和城乡建设局网站
  • 营销类网站 英文东莞正规的免费网站优化
  • 柳州网站推广最好的公司百度seo优化培训
  • 哈尔滨门户网站建站哪个网站做农产品
  • 网站行业关键词如何建设网站
  • wordpress插件目录504wordpress访问优化插件
  • 固定ip做网站网页源码提取工具
  • php网站模板源码下载公司网络营销推广软件
  • 免费电子版个人简历模板温州快速排名优化
  • 网站修改titlewordpress显示icp备案
  • 中国国际贸易单一窗口登录南京专业网站优化公司
  • 手机网站建设合同wordpress案例分析
  • 深圳做网站什么公司好广州电商小程序开发
  • 郑州高新区做网站的公司如何欣赏网站
  • 网站做维恩图做网站的公司杭州
  • 柳州公司网站制作公司wordpress 网店
  • 网站增加栏目费用在网站开发中如何设置登录
  • 怎样用php做网站百度推广联系人
  • 怎么建立手机网站如何申请公司域名
  • 营销型网站怎么收费邓州企业网站
  • 北京建设官方网站邢台网站维护
  • 新余网站制作网站开发工资咋样
  • 襄阳网站建设外包自己做一个网站
  • 网站域名的后缀wordpress文章归类
  • 查询企业信息的官方网站大连建设网站公司
  • 网站建设 全包专业建设规划方案模板