首页 > 其他 > 详细

10-10 MyBatis--性能优化

时间:2020-10-14 22:52:57      阅读:26      评论:0      收藏:0      [点我收藏+]

一、数据源 

  数据源是一种提高数据连接性能的常规手段,数据源会负责维持一个数据库连接池,当程序创建数据实例时,系统会一次性的创建多个数据库连接,并把这些数据库连接放在连接池中。当程序需要连接数据库访问时,无需进行重新获取数据库连接,而是从连接池中取出一个空闲的数据库连接。当程序使用数据库连接访问数据库结束时,无需关闭数据库连接,而是把数据库连接归还数据库连接池。通过这种方式,就可避免获取数据库时频繁的连接、关闭数据库导致性能降低,大大提升数据库性能。数据库连接池核心是以空间换时间。

二、缓存机制

  2.1 MyBatis缓存机制原理

  缓存机制是将第一次从数据库Sql查询的结果数据保存到缓存(内存中),当下一次SQL查询和第一次SQL查询相同,如果缓存中有数据则直接获取,而不用再从数据库获取,从而减少数据库的的访问频率,大大提升数据库性能。

  缓存机制分为一级缓存和二级缓存,默认一级缓存打开,二级缓存关闭。

  2.2 一级缓存

    一级缓存是sqlsession级别的缓存,不同的是sqlsession对象之间的缓存数据是相互不影响的。当sqlsession对象释放后,该sqlsession对象中的一级缓存也就不存在。

 技术分享图片

  2.3 二级缓存

    二级缓存是Mapper级别的缓存。多个sqlsession对象SQL语句查询数据库结果会存放二级缓存区域,二多个sqlsession对象可以共用二级缓存。

     二级缓存是多个sqlsession对象共用的。其作用范围是Mapper的同一个namespace,不同的sqlsession对象两次执行相同的namespace下的SQL语句,第一次执行会将数据库中查询结果数据存储到二级缓存中,第二次会从二级缓存中获得数据,而不是再从数据库获取,从而提高查询数据

技术分享图片

 

  2.4 MyBatis缓存使用注意事项

 

     1.只能在单表操作的表上使用缓存

     2.查询操作远大于更新、插入、和修改查找操作的情况先使用

     3.避免使用二级缓存(多表操作)

      多表操作缓存二级缓存会导致查询结果不正确,产生脏读

二、延迟加载

  延迟加载又交懒加载(也叫按需加载),也就是先加载主表信息,需要的时候,再去加载从表信息。代码中有查询语句,当执行到查询语句时,并不是马上去数据库查询,而是根据设计的延迟策略将查询向后推迟。

  延迟加载的作用:只有在用到需要的数据时才会真正执行查询操作,可以大大减轻数据库服务器的访问压力,提高数据库的性能。

10-10 MyBatis--性能优化

原文:https://www.cnblogs.com/bhhh/p/13816889.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!