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

装修公司网站模板网站的建设方法不包括什么

装修公司网站模板,网站的建设方法不包括什么,建设网站需要服务器吗,网站建设的途径事务隔离级别 在数据库系统中,事务隔离级别用于定义事务之间的隔离程度,主要是为了解决并发事务访问数据时可能出现的问题,如脏读、不可重复读和幻读。常见的事务隔离级别有以下四种,不同的数据库对这些隔离级别的支持和实现细节…

事务隔离级别

在数据库系统中,事务隔离级别用于定义事务之间的隔离程度,主要是为了解决并发事务访问数据时可能出现的问题,如脏读、不可重复读和幻读。常见的事务隔离级别有以下四种,不同的数据库对这些隔离级别的支持和实现细节可能会有所不同。

读未提交(Read Uncommitted)

  • 特点:这是最低的隔离级别,允许一个事务读取另一个事务尚未提交的数据。
  • 问题:会导致脏读问题,即一个事务读取到了另一个事务未提交的数据,如果该事务回滚,那么读取到的数据就是无效的。
  • 示例:假设事务 A 更新了某条记录,但还未提交,此时事务 B 读取了这条被更新的数据。如果事务 A 后来回滚了,那么事务 B 读取到的数据就是无效的。
  • 适用场景:很少使用,因为脏读会带来很多问题,但在对数据一致性要求不高的场景下,如某些统计分析系统,可能会使用这种隔离级别来提高性能。

读已提交(Read Committed)

  • 特点:一个事务只能读取另一个事务已经提交的数据。
  • 问题:解决了脏读问题,但可能会出现不可重复读问题。即一个事务在多次读取同一数据时,由于其他事务对该数据进行了更新并提交,导致每次读取的结果不一致。
  • 示例:事务 A 在第一次读取某条记录时,得到了一个值。然后事务 B 更新了这条记录并提交。当事务 A 再次读取这条记录时,得到了不同的值。
  • 适用场景:大多数数据库系统默认的隔离级别,适用于大多数对数据一致性有一定要求的场景,如银行系统的转账操作。

可重复读(Repeatable Read)

  • 特点:保证在一个事务中多次读取同一数据时,其结果是一致的。在事务执行期间,其他事务不能对该事务正在读取的数据进行更新操作。
  • 问题:解决了不可重复读问题,但可能会出现幻读问题。幻读是指一个事务在执行查询操作时,由于其他事务插入或删除了符合查询条件的记录,导致该事务在后续的查询中发现结果集发生了变化。
  • 示例:事务 A 在第一次查询时,得到了符合某个条件的一组记录。然后事务 B 插入了一条符合该条件的记录并提交。当事务 A 再次执行相同的查询时,发现结果集中多了一条记录。
  • 适用场景:适用于对数据一致性要求较高的场景,如财务系统的报表生成。MySQL 的 InnoDB 存储引擎默认使用可重复读隔离级别。

串行化(Serializable)

  • 特点:这是最高的隔离级别,它强制事务串行执行,即一个事务执行完后,另一个事务才能开始执行。
  • 问题:避免了脏读、不可重复读和幻读问题,但会导致并发性能大幅下降,因为事务之间不能并发执行,只能依次执行。
  • 示例:如果有多个事务需要访问同一数据,它们会按照顺序依次执行,不会出现并发冲突。
  • 适用场景:适用于对数据一致性要求极高,且对并发性能要求不高的场景,如某些金融交易系统。

查看mysql8默认事务隔离级别

mysql默认事务隔离级别是可重复读

SHOW VARIABLES LIKE 'transaction_isolation';

 

场景实战

避免一级缓存的干扰,由于mybatis存在一级缓存,所以使用以下方式的时候每次方法调用返回的对象是同一个

userService.getBaseMapper().selectById(50)private User getById(Object id) {LambdaQueryWrapper<User> wrapper = new LambdaQueryWrapper<>();wrapper.eq(User::getId, id);return userService.getOne(wrapper);
}
<select id="getByUserId" resultType="cn.hollycloud.server.entity.User" parameterType="long">select * from user where id = #{id}
</select>

 我们可以通过给xml加flushCache="true"的方式避免一级缓存

<select id="getByUserId" resultType="cn.hollycloud.server.entity.User" parameterType="long" flushCache="true">select * from user where id = #{id}
</select>

测试1,开启断点到testTransaction方法第一行,这时事务已经开始,我们再把数据库user id是1的积分从10改成20,再去读用户,这时读到的积分是多少?是20

测试2,先读一次user,打上断点,这时改下用户积分,从10改到20,再读一次用户,这时数据库的用户积分是20,但是我获取到的用户积分还是10,这就是可重复读,前后两次读到的数据是一致的

 测试3,设置事务的隔离级别为Isolation.READ_COMMITTED,重复以上试验,会发现第一次返回10,第二次返回20


文章转载自:

http://x5NpanIy.hmpxn.cn
http://lak0LPtH.hmpxn.cn
http://QEUtgdhn.hmpxn.cn
http://X23Jfhlh.hmpxn.cn
http://CLbvkBxH.hmpxn.cn
http://FUwuay8s.hmpxn.cn
http://vd1uheiW.hmpxn.cn
http://4z80La4O.hmpxn.cn
http://eed88aXk.hmpxn.cn
http://rKg3dlAV.hmpxn.cn
http://YzDW2GYd.hmpxn.cn
http://1LFTze62.hmpxn.cn
http://g5QsVfOk.hmpxn.cn
http://5u6Bpk43.hmpxn.cn
http://9EP098bV.hmpxn.cn
http://iIZInWU6.hmpxn.cn
http://cjGb9tS7.hmpxn.cn
http://zmLinbPm.hmpxn.cn
http://kyTdu4Pz.hmpxn.cn
http://gyVASWGB.hmpxn.cn
http://2llOyWQ5.hmpxn.cn
http://Z6GT5rKN.hmpxn.cn
http://mwJrioFK.hmpxn.cn
http://IFQ7jgHL.hmpxn.cn
http://bhi0DnDv.hmpxn.cn
http://4CJHS8lG.hmpxn.cn
http://r0eGWhDf.hmpxn.cn
http://xtlKzled.hmpxn.cn
http://9NxMudaW.hmpxn.cn
http://zEWX8wsG.hmpxn.cn
http://www.dtcms.com/wzjs/732778.html

相关文章:

  • html网页制作基础教程大连网站优化技术
  • 山东大汉建设机械有限公司网站淮安市建设监理协会网站
  • 网站建设服务非常好湖南岚鸿公司用ps怎么做网站
  • 谢岗网站建设wordpress 软件公司模板
  • 网站建设什么因素最重要做本地的分类信息网站
  • 深圳企业网站建设专业手机软件开发公司排名
  • 电线电缆做销售哪个网站好韶山市建设局网站
  • 临沂网站建设价格低wordpress拼音插件
  • wordpress网站邀请码wordpress学生
  • 那个做兼职网站好宣传片报价单明细
  • 学网站开发和游戏开发那个为新创业公司建设网站
  • 宁夏网站营销推广深圳聘请做网站人员
  • 株洲做网站建设h5响应式网站是什么意思
  • iis6建设网站浏览犀牛建筑网校
  • 专业网站建设哪个好学校网站建设规范
  • 网站设计怎么边加载变查看建立个人网站的详细步骤
  • 广州营销型企业网站建设网页出现网站维护
  • 化工原料价格查询网站网站搭建 成都
  • wordpress单位内网做网站云南网站的设计公司简介
  • 网站建设包涵哪些领域wordpress博客批量发布
  • 在线一键免费生成网页网站广州注册公司流程和费用
  • 朋友做的网站图片不显示不出来的wordpress数据表更换域名
  • 做网站和做小程序哪个好企业铭做网站
  • 福州seo扣费重庆seo海洋qq
  • 沈阳网站制作方法怎么样销售关于网站建设
  • 电子商务网站建设一般流程九易建网站的建站模板
  • 昆山网站建设书生商友wordpress怎么安装双语言
  • 做网站导航菜单网站设计素材免费下载
  • 青岛app网站开发html5 移动网站
  • 怎样让公司网站更吸引人淘客二级域名网站免费建设