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

asp.net企业网站源码wordpress短代码返回html

asp.net企业网站源码,wordpress短代码返回html,福建龙岩网站制作公司,做网站的工作室目录 一、事务的概念 二、事务的核心特性 三、事务操作中的常见BUG 3.1 脏读 3.2 不可重复读 3.3 幻读 四、隔离级别 五、使用事务 一、事务的概念 “事务”是指一组操作,在逻辑上是不可分割的,组成这组操作的各个语句,或者全部执行成…

目录

一、事务的概念

二、事务的核心特性

三、事务操作中的常见BUG

3.1 脏读

3.2 不可重复读

3.3 幻读

四、隔离级别

五、使用事务


一、事务的概念

        “事务”是指一组操作,在逻辑上是不可分割的,组成这组操作的各个语句,或者全部执行成功,或者全部执行失败。

        不同的环境对“事物”这一概念有不同的称呼,在数据库中,这个概念就被称为“数据库事务”。


二、事务的核心特性

事物具有以下特性:

核心特性说明
原子性通过事物,将多条语句组合在一起,使这些语句在执行的时候不可被分割。
一致性事务中的各个操作语句,或者全部执行成功,或者全部执行失败,保持了执行结果的一致。
持久性事务本身也是由操作语句组成的,每一条执行成功的语句带来的数据修改都是持久化存在的。
隔离性用于解决多事务并发执行时可能出现的BUG,隔离性提高了数据的准确性,但降低了程序的运行速度。

三、事务操作中的常见BUG

3.1 脏读

介绍脏读,就像名字一样,意思是读到的数据是脏的,是被污染的。脏读是由于数据库中的数据没有被正确地更新,导致在事务提交时读取的数据是错误的。
举例事务1持续更新数据A,在事务1未更新完毕时,事务2读取了数据A。此时数据A仍然在被事务1改动,那么事务2读取的数据就是一个错误的数据。
解决方案降低事务的并发,当发生写操作时,其他事务不能读,直到写操作执行完毕。(写的时候不能读)

3.2 不可重复读

介绍不可重复读是由于数据库中的数据虽然被正确地更新,但是因为在读的过程中发生并发访问,导致数据再次被更新,此时事务就根据读取的错误数据提交了。
举例事务1更新数据A,并正常提交。事务2开始读操作,多次读取数据A。但发生了并发访问,事务3再次更新数据A。此时事务2还在持续读取数据A,但得到的数据已经发生改变。
解决方案降低事务的并发,当发生读操作时,其他事务不能写,直到读操作执行完毕。(读的时候不能写)

3.3 幻读

介绍幻读和不可重复读十分相似,都是在读数据的过程中,数据发生改变而导致读取的数据前后不一致,只是幻读获得的错误数据规模更大,比如幻读带来了错误的结果集。个人粗略的认为幻读是不可重复读的进阶版。
举例事务1更新数据A,并正常提交。事务2开始读操作,多次读取包含数据A在内的数据集合,并根据数据集合进行了各种运算,产生了结果集。事务3并发访问将数据A删除了,此时事务2读取的数据集合就不包括数据A了,那么此时事务2完成提交后得到的结果集就与第一次不同了,就好像产生了幻觉一样(通俗来讲就是,“见了鬼了怎么两次得到的结果不一样?”)。
解决方案通常采用串行化的事务执行方式,即不再发生任何并发。

四、隔离级别

        从上文可以得知,使用事务时可能出现一些BUG。虽然出现了BUG,但一般都会有相应的解决方法,而MySQL中也提供了一些“锦囊妙计”来帮助使用者避免BUG,这就是隔离级别

MySQL提供了四种隔离级别:

隔离级别说明并行程度隔离程度效率数据准确度可能出现的BUG
read uncommitted读未提交。没有任何限制。最高最低最高最不准确脏读、不可重复读、幻读
read commited读已提交。写操作加锁。不准确不可重复读、幻读
repeatable read可重复读,默认的隔离级别。读操作加锁,写操作加锁。准确幻读
serializable串行化。读操作加锁,写操作加锁。不并行最高最低最准确

        以上四种隔离级别供使用者根据需求进行使用和调整,以适应不同情况。越往下隔离级别越高,隔离级别高能够带来准确的数据,但同时会导致程序执行效率变低,这就需要程序员根据不同的实际情况进行取舍了。


五、使用事务

使用事务的步骤:

开启事务start transaction;
打包SQL语句由多条SQL语句组成一个逻辑上的不可分割的整体;
回滚或提交

rollback/commit;

回滚(rollback):是指在事务提交时,如果发生错误,可以回滚到事务开始时,撤销所有已经执行的SQL语句。回滚可以用于确保数据的一致性,避免数据不一致的情况。使用Java进行编程时, rollback 一般会在代码里抛出异常,cry/catch 捕获时使用。简单来讲,回滚代表SQL全部执行失败。

提交(commit):是指在事务完成时,可以确认所有SQL语句都已经成功执行,确认将事务的数据写入到数据库中。简单来讲,提交代表SQL全部执行成功。


阅读指针 -> 《MySQL -- 什么是JDBC?如何使用JDBC进行编程?》

<MySQL> 什么是JDBC?如何使用JDBC进行编程?-CSDN博客介绍了什么是JDBC,以及演示了JDBC的基础使用。https://blog.csdn.net/zzy734437202/article/details/134473626

http://www.yayakq.cn/news/957791/

相关文章:

  • 的建站公司品牌策划咨询设计公司
  • 网站建设必要性广州制作外贸网站公司简介
  • 做网站前景怎样c 小说网站开发教程
  • 先备案域名还是先做网站网站转备案
  • 长沙建站位找有为太极广大雅思培训班
  • 网站建设中请期待在线教育网站建设策划
  • 中石油网页设计与网站建设大良网站建设服务
  • 做只在自己电脑上的网站适合发表个人文章的平台
  • 广州网站设计首选刻wordpress常量
  • 网站的字体颜色使用tag的网站
  • 手机电影网站怎样做天津网站开发学校
  • 做传销网站网站服务器租用需要什么材料
  • 比格设计网站官网徐州自助建站软件
  • 古交做网站一站式网站建设有哪些
  • 中国网站开发排名外贸业务怎么利用网站开发客户
  • 在那个网站可买做鞋子的羊毛iis7.5怎么做网站
  • 西安o2o网站设计公司网站设计配色怎么做
  • 移动端模板网站建设价格桂林网站建设 腾云
  • 郓城住房和城乡建设局网站swoole怎么做直播网站
  • 家具网站开发环境与工具免费网络空间搜索引擎
  • 合肥seo网站排名优化公司湖南营销型网站建设案例
  • 微信微网站模板建设网站找什么问题
  • 沈阳市建设局网站首页网站建设需要矢量文件
  • 深圳市建设工程监理协会网站没固定ip怎么做网站
  • 南京网站排名提升北京到安阳高铁时刻表查询
  • 网站 维护方案代理网店
  • wordpress源码网站主题重庆关键词自然排名
  • 高端人才招聘网站排名wordpress 多网站
  • 做平台网站多少钱企业名录2019企业黄页
  • 深圳坪山网站制作公司南通网站设计公司