线程池-workQueue
摘要:线程池参数的 workQueue 决定了缓存任务的排队策略,对于不同的业务场景,我们可以使用不同的排队策略。 我们只需要实现BlockingQueue 这个接口即可。 介绍一下常用的有三种workQueue。 1. SynchronousQueue SynchronousQueue没有容量,是无缓冲
阅读全文
posted @
2024-01-28 12:16
zhengbiyu
阅读(244)
推荐(0) 编辑
脚本exlpain结果与optimizer_trace结果不一致
摘要:先说结论: 表数据量太少,使用索引的效率不如全表扫描。 表信息: CREATE TABLE `w_map_cell` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `shelf_id` bigint(11) DEFAULT NULL COM
阅读全文
posted @
2024-01-24 18:04
zhengbiyu
阅读(9)
推荐(0) 编辑
大数据量插入、更新改成批量模式
摘要:可以看出实际应用场景中储位数据量比较大,优先优化储位相关接口 本机环境优化前耗时: 储位个数 3200 update时间 28578 insert时间 21758 本机环境优化后耗时: 储位个数 3200 update时间 5169 insert时间 1733 将数据库连接加上rewriteBatc
阅读全文
posted @
2024-01-24 17:31
zhengbiyu
阅读(26)
推荐(0) 编辑
分布图最短路径算法比较
摘要:用户维护好仓区的点和线,生成分布图时,用户任意选取两个点,后端求出当前最短路径。 假设图G(m, n),m个顶点,n条边 算法对比: floyd算法时间复杂度o(m3)缺点:时间复杂度过高 dijkstra算法时间复杂度o(m2),使用优先队列可以降到o(m * logm)邻接矩阵存储:适合稠密图邻
阅读全文
posted @
2024-01-23 15:37
zhengbiyu
阅读(22)
推荐(0) 编辑
代理对象执行私有方法导致注入的属性为null
摘要:代码如下: @Service public class PerformanceServiceImpl implements IPerformanceService { private final static Logger logger = LoggerFactory.getLogger(Perfo
阅读全文
posted @
2024-01-23 15:35
zhengbiyu
阅读(72)
推荐(0) 编辑
Interceptor
摘要:一、简述 Mybatis采用责任链模式,通过动态代理组织多个插件(拦截器),通过这些插件可以改变Mybatis的默认行为(诸如SQL重写之类的) Mybatis是通过动态代理的方式实现拦截的 拦截器(Interceptor)在 Mybatis 中被当做插件(plugin)对待,官方文档提供了 Exe
阅读全文
posted @
2024-01-21 14:59
zhengbiyu
阅读(55)
推荐(0) 编辑
过期策略和淘汰策略
摘要:过期策略 定期删除 + 惰性删除 (1) 定期删除:redis默认每隔100ms(运行频率由配置文件中的hz参数来控制,取值范围1~500,默认是10,代表每秒运行10次)执行后台删除任务。 清理过程如下: 遍历所有的db 从db中设置了过期时间的key的集合中随机检查20个key 删除检查中发现的
阅读全文
posted @
2024-01-20 11:59
zhengbiyu
阅读(20)
推荐(0) 编辑