MySQL联合索引中不同区分度列的顺序对查询性能的影响
当构建联合索引时,需要考虑索引的顺序问题,除了考虑使用场景,索引的顺序是如何影响查询性能的呢?先来做个小实验。 首先构建以下表: create table if not exists test.flow ( id bigint auto_increment primary key, random_string varchar(255) not nul...
当构建联合索引时,需要考虑索引的顺序问题,除了考虑使用场景,索引的顺序是如何影响查询性能的呢?先来做个小实验。 首先构建以下表: create table if not exists test.flow ( id bigint auto_increment primary key, random_string varchar(255) not nul...
Caffeine is a high performance Java caching library providing a near optimal hit rate. 自动加载value, 支持异步加载 基于size的eviction:frequency and recency 基于时间的过期策略:last access or last write 异步更新val...
背景 不同于脚本语言可以直接调用函数,Java作为面向对象的语言需要提前创建类并实例化对象来调用实例方法,使用起来十分笨重。 比如我们需要构造一个如下ActionListener接口的类: public interface ActionListener { void actionPerformed(ActionEvent e); } 需要重新写一套class TestActi...
事务指代一组操作同时成功或同时失败,事务可分为两类: 系统事务:即关系数据库事务,一次数据库连接中由start transaction或begin开启,commit表示提交,rollback表示回滚; 业务事务:完成一个业务目标包含的一系列业务动作,如让一个配置生效,需要经历 编辑->保存->提交审批->审批通过 这4个步骤。 当事务持续时间过长,并发请求的概...
stream简介 Stream: A sequence of elements supporting sequential and parallel aggregate operations stream为sequential即单线程串行操作,parallelStream支持并行操作,本文只讨论sequential的stream。 stream常用操作 @Data ...
Synchronized使用 synchronized关键字可使用在方法上或代码块上表示一段同步代码块: public class SyncTest { public void syncBlock(){ synchronized (this){ System.out.println("hello block"); } }...
G1简介和常用配置可参考:JVM G1垃圾回收器简介与常用配置 G1调优概要 G1整体上保持默认配置即可,最多配置一下 pause-time goal或堆内存大小(-Xmx和-Xms)。 不像其他的垃圾回收器,G1默认已经在最大吞吐和低时延之间做了平衡。但是,G1在堆中的增量式空间回收和pause-time控制机制给应用线程 和回收效率上都带来了负担。 如果需要大吞吐(非在线业务,如...
简介 G1 is a generational, incremental, parallel, mostly concurrent, stop-the-world, and evacuating garbage collector which monitors pause-time goals in each of the stop-the-world pauses. 在内存空间...
分布式锁作为分布式环境下并发控制利器,使用场景广泛。分布式锁通常可利用中间件Redis或Zookeeper来实现, 例如针对Java语言Redis有Redisson组件, Zk有Curator组件。 Redis是一款内存数据库,通常可用来做缓存,由于其执行命令使用单线程,也可以用来实现分布式锁, 在集群模式下,Redis提供主从复制和哨兵机制实现高可用性; Zookeeper是一...