技术点总结

  • ThreadLocal 就是对ThreadLocalMap的封装,数据本质还是在线程threadLocalMap中
  • 线程池是队列满了之后,才会扩容:从coreSize 大小扩容到 maxSize
  • 场景:如果线程池满了又不能丢任务,那么可以考虑将任务持久化到数据库中,这样就不会丢失任务
  • 有界队列和无节队列区别:有界队列:像固定大小的水桶,水满后会溢出或停止接水。无界队列:像无底洞的水桶,可能装下整个海洋,但最终会淹没你的房间(OOM)
  • AQS 就是抽象队列同步器,用在JUC的同步器实现,用于状态变更、线程排队等操作
  • CompletableFuture 感觉功能很强大,很适合做任务编排, asyncTool后续可以深入了解一下
  • DelayQueue 通常用于实现定时任务调度和缓存过期删除等场景
  • 区分度最高的列放在联合索引的最左侧:这是最重要的原则。区分度越高,通过索引筛选出的数据就越少,I/O 操作也就越少。计算区分度的方法是 count(distinct column) / count(*)。最频繁使用的列放在联合索引的左侧:这符合最左前缀匹配原则。将最常用的查询条件列放在最左侧,可以最大程度地利用索引。
  • 隐式转换会导致索引失效,如数字id = ‘111’;id的类型为数字的时候,会使用隐式转换
  • 子查询性能差的原因:子查询的结果集无法使用索引,通常子查询的结果集会被存储到临时表中,不论是内存临时表还是磁盘临时表都不会存在索引,所以查询性能会受到一定的影响

技术点总结
https://www.lewismind.site/2025/02/25/20250001/
作者
lewis
发布于
2025年2月25日
许可协议