摘要:
Java各种锁详解 Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。 Java中往往是按照是否含有某一特性来定义锁,我们通过特性将锁进行分组 阅读全文
摘要:
前情提要 本文中提供了九种方式获取resources目录下文件的方式。其中打印文件的方法如下: /** * 根据文件路径读取文件内容 * * @param fileInPath * @throws IOException */public static void getFileContent(Obj 阅读全文
摘要:
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引 阅读全文
摘要:
ShardingJdbc分库分表简单实现及内容整理 目录 背景 一、简介 1. ShardingSphere-JDBC 2. ShardingSphere-Proxy 3. ShardingSphere-Sidecar(TODO) 4. 对比图 二、垂直拆分和水平拆分 1. 垂直拆分 2. 水平拆分 阅读全文
摘要:
一、MySQL MERGE存储引擎 一. 什么是MERGE引擎MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询。 二. 应用场景如果需要把日志纪录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要时常进行来自多个表的合计查询, 阅读全文
摘要:
上文(MySQL自我保护工具--pt-kill ) 提到用pt-kill工具来kill相关的会话,来达到保护数据库的目的,本文再通过修改数据库参数的方式达到阻断长时间运行的SQL的目的。 1、参数介绍 mysql5.6及以后,数据库端新增了新变量来限制语句最大执行时间,用于在服务端对select语句 阅读全文
摘要:
一、概要 本次搭建redis集群采用docker进行构建,采用哨兵模式防止集群宕机 典型的哨兵架构图如下所示: 它由两部分组成: 哨兵节点:哨兵系统由一个或多个哨兵节点组成,哨兵节点是特殊的Redis节点,不存储数据。 数据节点:主节点和从节点都是数据节点。 二、创建redis及sentinel目录 阅读全文
摘要:
JAVA的一大特性就是JVM会对内部资源实现自动回收,即自动GC,给开发者带来了极大的便利。但是JVM对外部资源的引用却无法自动回收,例如数据库连接,网络连接以及输入输出IO流等,这些连接就需要我们手动去关闭,不然会导致外部资源泄露,连接池溢出以及文件被异常占用等。 传统的手动释放外部资源一般放在一 阅读全文
摘要:
统一返回值,Result import java.io.Serializable; import java.util.List; import java.util.Optional; import org.springframework.http.HttpStatus; import org.spr 阅读全文
摘要:
方式1:简单明了 jar包依赖: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.9</version> </dependency> <d 阅读全文