- 博客(8)
- 收藏
- 关注
原创 Mysql深分页
通常认为是主键,但通过查资料发现并不一定,这里有个物理顺序和逻辑顺序的区别,如:删除原有数据后再插入复用旧 id 的数据,可能会由于存放在不同页上造成物理顺序与逻辑顺序不一致,此时可以通过优化表改善:optimize table table_name。因此:子查询方式快的原因可以确定了,子查询只取了 create_time+id 到 sort buffer(相当于双路排序的做法), 相比直接查询,省去了绝大部分字段,减少大量临时文件 IO 操作,因此提高查询效率。排序字段有索引就一定快吗?
2024-03-27 11:08:12
1560
3
原创 一文详解JVM内存结构
如果创建新对象时,Eden 空间填满了,就会触发 Minor GC,将 Eden 不再被其他对象引用的对象进行销毁,再加载新的对象放到 Eden 区,特别注意的是 Survivor 区满了是不会触发 Minor GC 的,而是 Eden 空间填满了,Minor GC 才顺便清理 Survivor 区。在栈帧中,与性能调优关系最密切的部分,就是局部变量表,方法执行时,虚拟机使用局部变量表完成方法的传递局部变量表中的变量也是重要的垃圾回收根节点,只要被局部变量表中直接或间接引用的对象都不会被回收。
2023-07-24 11:01:13
69
原创 mybatis-plus实现真正的批量插入
前言:用过mybatis或者mybatis-plus的小伙伴们都知道,工具虽好,偏就是没有实现真正的批量插入,每次都需要手写SQL。今天就基于mybatis-plus实现一个不用写SQL的真正的批量插入。还没有使用上正版激活码激活的朋友们,或者想获取更多资料的同学们,可以通过。5.继承我们自己的RootMapper之后就可以使用了。Mybatis-plus实现真正的批量插入。2.添加自定义方法SQL注入器。手懒的兄弟们快在代码中用起来吧。4.添加通用mapper。3.向MP中注入此配置。
2023-06-12 21:21:10
2297
原创 SpringBoot 设置动态定时任务,千万别再写死了~
之前写过文章记录怎么在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。除了上面的借助cron表达式的方法,还有另一种触发器,区别于CronTrigger触发器,该触发器可随意设置循环间隔时间,不像cron表达式只能定义小于等于间隔59秒。经过网上搜索学习后,特此记录如何在SpringBoot项目中实现动态定时任务。可以看到任务变成了15秒执行一次。
2023-04-23 11:12:59
143
原创 SpringCloud Netflix 负载均衡大坑
如图,新版本的Netflix-eureka-client中已经引入了负载均衡,再次引入ribbon会导致冲突。
2022-07-15 11:21:18
187
原创 SpringBoot整合redis
说明:在 SpringBoot 2.x之后,原来使用的jedis被替换成了lettucejedis:lettuce:采用netty,实例可以再多个线程中进行共享,不存在线程不安全的情况!可以减少线程的数量,更像NIO模式在spring-boot-starter-data-redis中,我们发现使用的是lettuce。源碼分析@Bean @ConditionalOnMissingBean( name = {"redisTemplate"} )// 我.
2022-04-17 22:26:40
88
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人