摘要: http://thesecretlivesofdata.com/raft/ 阅读全文
posted @ 2020-10-23 21:37 蓝天随笔 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 参考: https://www.jianshu.com/p/6f3ee90ab7d3 阅读全文
posted @ 2020-10-23 21:30 蓝天随笔 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 一、锁分类 二、意向锁 1、意向锁属于表锁,用于行锁和表锁共存。 2、当获取行锁时,mysql会隐式的获得意向锁 3、作用:当需要获得表锁时,可以判断是否有事务已经获得意向锁而不必遍历所有索引查看具体被谁占用。 三、行锁 MySQL行锁锁的是索引而不是实际的数据行。 四、InnoDB死锁解决 1、选 阅读全文
posted @ 2020-09-28 22:46 蓝天随笔 阅读(834) 评论(0) 推荐(0) 编辑
摘要: 1、作用 可以在sql执行前后 结果映射 参数解析阶段做拦截处理(AOP) 如:日志打印 性能监控等 2、拦截的4个对象 Execute StatementHandle ParameterHandle ResultHandle Executor (update, query, flushStatem 阅读全文
posted @ 2020-08-08 20:37 蓝天随笔 阅读(1022) 评论(0) 推荐(1) 编辑
摘要: 1、定义 mybatis延时加载即用时查询,通常用于多表联级查询 2、好处 mybatis延时加载 把关联表的查询 拆分 一个个单表查询,关联的表需要时再去查询。提升性能 数据库单表查询性能 > 关联查询的性能 3、配置 默认关闭 如下全局配置中开启 <settings> <!--开启延迟加载--> 阅读全文
posted @ 2020-08-08 20:22 蓝天随笔 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 1、mybatis支持sql语句动态拼接。如: where+if set + if choose+when foreach 等。 2、原理 mapper本质上是一个接口 ,采用JDK动态代理机制执行。 在代理的InvocationHandle中可解析动态sql 封装为最终的BoundSql执行 参考 阅读全文
posted @ 2020-08-08 20:05 蓝天随笔 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 1、一级缓存 配置: 我们来看看如何使用MyBatis一级缓存。开发者只需在MyBatis的配置文件中,添加如下语句,就可以使用一级缓存。共有两个选项,SESSION或者STATEMENT,默认是SESSION级别,即在一个MyBatis会话中执行的所有语句,都会共享这一个缓存。一种是STATEME 阅读全文
posted @ 2020-08-08 19:55 蓝天随笔 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1、分类 不带连接池功能: 如:<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName"><value>${j 阅读全文
posted @ 2020-08-08 19:41 蓝天随笔 阅读(708) 评论(0) 推荐(0) 编辑
摘要: 1、定义datasource 如: <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locati 阅读全文
posted @ 2020-08-08 19:22 蓝天随笔 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一、定义 @EnableAspectJAutoProxy注解实际上就是向容器中注册了一个AnnotationAwareAspectJAutoProxyCreator,这个类本身就是一个后置处理器,AOP代理就是由它在这一步完成的。 二、初始化后置处理器AnnotationAwareAspectJAu 阅读全文
posted @ 2020-07-26 21:48 蓝天随笔 阅读(110) 评论(0) 推荐(0) 编辑