- 博客(59)
- 资源 (8)
- 收藏
- 关注

转载 MySQL性能瓶颈以及优化
原链接:https://www.toutiao.com/a6725727372672238094/原来这样调优可以攻破MySQL性能瓶颈来一杯82年的Java 2019-08-16 19:37:13一、前言MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。今天给大家讲解MySQL的
2020-07-12 15:46:51
4036
原创 mysql8.0新特性
新特性优化器索引隐藏索引创建隐藏索引create index idx_j on t1(j) invisible;测试select @@optimizer_switch;set session optimizer_switch="use_invisible_indexes=on"explain select * from t1 where j=1;正式使用alter table t1 alter index idx_j visible // 设置可见alter table
2022-04-04 10:18:29
868
原创 设计模式之适配器模式
字段适配public class BaseInfo { private String userId; private String bizId; private String bizTime; private String desc; private String address; // get and set @SneakyThrows @Override public String toString() { ret
2022-04-02 22:09:29
629
原创 自定义Springboot starter
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/mav
2022-04-01 21:09:44
582
原创 设计模式之观察者模式
public class WeatherSubject extends Observable { private String content; public String getContent() { return content; } public void setContent(String content) { this.content = content; super.setChanged(); /
2022-03-30 09:40:27
372
原创 高并发异步编程
Demoprivate static boolean asyncPay() { CompletableFuture<Boolean> isVaild = CompletableFuture.supplyAsync(() -> CheckService.isVaild()); CompletableFuture<Integer> orderSum = CompletableFuture.supplyAsync(() -> OrderServ
2022-03-27 15:19:42
2694
原创 Servlet3.0异步解决吞吐量
代码@GetMapping("/sync") public Callable<Object> test(@RequestParam Long userId) { long tomcatStart = System.currentTimeMillis(); Callable<Object> callable = new Callable<Object>() { @Override p
2022-03-26 20:47:58
803
原创 Tomcat架构热部署
整体架构热加载org.apache.catalina.loader.WebappLoader#backgroundProcessorg.apache.catalina.core.StandardContext#reload<Contenxt path ="xxxx" docBase="/home/testDemo" reloadable ="true"></Contenxt>热部署 <Host name="localhost" appBase="webap
2022-03-26 14:32:15
475
原创 Redis服务诊断
开发key尽量短,节省内存key 设置过期时间避免bigkey (10kb以下)聚合命令放在客户端O(n)命令 n<300批量命令使用Pipleline避免集中过期选择合适的淘汰策略单个实例key实例一个亿以内运维隔离部署(业务线、主从库)单个实例10G以下slave节点做备份纯缓存关闭Aof实例不部署在虚拟机关闭内存打野AOF配置everysec熟悉监控原理保证充足的CPU、内存、磁盘、网络资源命令lazyfree-lazy-expire yes #
2022-03-25 11:11:33
1199
原创 elasticsearch与MySQL
elasticsearch与MySQl索引操作创建索引PUT http:/localhost:9200/shopping添加数据POST /shopping/_doc/1002{ "title": "小米手机", "category": "小米", "images": "http://www.gulixueyuan.com/xm.jpg", "price": 3999.00}删除数据DELETE /shopping/_doc/1002局部修改
2022-03-24 14:39:35
6219
转载 大数据框架对比:Hadoop、Storm、Samza、Spark 和 Flink
大数据框架对比:Hadoop、Storm、Samza、Spark 和 Flink
2022-03-17 10:44:33
247
原创 设计模式之策略模式(结合Spring)
工厂定义@Componentpublic class StrategyFactory implements InitializingBean, ApplicationContextAware { private ApplicationContext applicationContext; private static final Map<String, AbstractsHandler> handlerMap = new HashMap<>();
2022-01-20 12:29:56
477
转载 Centos7开放及查看端口
1、开放端口firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口firewall-cmd --reload # 配置立即生效2、查看防火墙所有开放的端口firewall-cmd --zone=public --list-ports3.、关闭防火墙如果要开放的端
2021-12-20 14:40:50
257
原创 Tomcat vs Jetty vs Undertow 对比
Tomcat vs Jetty vs UndertowTomcat vs Jetty vs Undertow
2021-11-14 08:28:14
451
原创 注册中心比较
服务注册于发现框架CAP模型控制台管理社区活跃度EurekaAP支持低(2.x版本闭源)ZookeeperCP不支持中ConsulCP支持高NacosAP支持高
2020-08-06 10:45:29
258
转载 Linux常用命令
原文链接:https://newrss.guancha.cn/toutiao/toutiaopost/industry-science/2019_03_07_492721.shtml?tt_group_id=6665566522133447182top命令top命令提供了实时的对系统处理器的状态监视。它将显示系统中CPU最"敏感"的任务列表,该命令可以按CPU使用、内存使用和执行时间对任务进行排序,而且该命令的很多特性都可以通过交互式命令。Tasks、Cpus、Mem和Swap分别代表了进程信息、C
2020-07-12 17:01:48
301
原创 volatile的用途
volatile的用途1.线程可见性package com.gemini.testvolatile;public class T01_ThreadVisibility { private static volatile boolean flag = true; public static void main(String[] args) throws InterruptedException { new Thread(()-> { wh
2020-07-12 16:43:27
178
原创 synchronized和Lock孰优孰劣
synchronized的横切面详解synchronized原理.升级过程汇编实现vs reentrantLock的区别java源码层级synchronized(o)字节码层级monitorenter moniterexitJVM层级(Hotspot)package com.mashibing.insidesync;import org.openjdk.jol.info.ClassLayout;public class T01_Sync1 { public stati
2020-07-12 16:38:19
334
转载 G1垃圾回收器调优
G1垃圾回收器调优原链接:https://www.oracle.com/cn/technical-resources/articles/java/g1gc.html垃圾优先型垃圾回收器 (G1 GC) 是适用于 Java HotSpot VM 的低暂停、服务器风格的分代式垃圾回收器。G1 GC 使用并发和并行阶段实现其目标暂停时间,并保持良好的吞吐量。当 G1 GC 确定有必要进行垃圾回收时,它会先收集存活数据最少的区域(垃圾优先)。垃圾回收器 (GC) 是一个内存管理工具。G1 GC 通过以下操作实
2020-07-11 13:21:50
1070
原创 程序幂等性设计
前端按钮只可操一次token机制使用post/Redirect/Get模式在session中存放特殊标志后端使用唯一索引防止幂等性Token+ Redis幂等状态机幂等乐观锁实现幂等防重表实现幂等性select + insert (单机)分布式锁保证幂等性缓冲队列全局唯一号...
2020-07-10 18:59:23
177
原创 设计模式之访问者模式
接口设计public class Times { private static final SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS"); // 访问者接口 public interface Task { void execute(); } public static void test(String title, Task task) { if (task
2020-07-10 17:29:25
129
原创 设计模式之建造者模式
JavaBean形式/** * 待构建的对象。该对象的特点: * <ol> * <li>需要用户手动的传入多个参数,并且有多个参数是可选的、顺序随意</li> * <li>该对象是不可变的(所谓不可变,就是指对象一旦创建完成,其内部状态不可变, * 更通俗的说是其成员变量不可改变)。 * 不可变对象本质上是线程安全的。</li> * <li>对象所属的类不是为了继承而设计的。</li> * </ol&g
2020-07-10 16:52:25
202
原创 设计模式之策略模式
接口定义public interface SmsService { /** * 发送短信 * @param content 短信内容 */ void send(String content); /** * 短信发送通道 * @return */ public SmsType smsType();}短信通道public enum SmsType { /**阿里云*/ ALIYUN,
2020-07-10 16:21:19
153
原创 设计模式之模板模式
改造之前 @Override public User selectUserById(Integer id) { User user = (User) redisTemplate.opsForValue().get("user:" + id); if (user == null) { synchronized (this) { user = (User ) redisTemplate.opsForValue()
2020-07-10 14:47:37
140
原创 JVM堆大小设置
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms3550m -Xmn2g -Xss128k-Xmx3550m:设置JVM最大可用内存为3550M。-Xms3550m**:
2020-07-09 15:50:15
1845
原创 MySQL优化
MySQL执行流程1、查询缓存2、解析器生成解析树3、预处理再次生成解析树4、查询优化器5、查询执行计划6、查询执行引擎7、查询数据返回结果表结构对性能的影响1、冗余数据的处理(可以提高系统的整体查询性能<三范式>)1、每一列只能有一个值2、每一行可以被唯一的区分3、不包含其他表的已包含的非关键信息2、大表拆小表1、一般不会设计属性过多的表2、一般不会超过500到1000万数据的表3、有大数据的列单独拆为小表3、根据需求展示更加合理的表结构4、常用属
2020-07-08 14:26:42
168
原创 Git基础
Git基础Git 安装Git下载地址https://git-scm.com/downloadsGit安装(Window/Mac)选择不同系统安装包安装检验是否安装成功出现Git Bash命令行工具或Git GUI工具git --version 查看git安装版本Git 结构工作区(Working Directory)版本库(repository)暂存区(stage/index)masterhead唯一指向Git 文件的4种状态Untra
2020-07-08 14:21:44
150
原创 GC和GC Tuning
GC和GC TuningGC的基础知识1.什么是垃圾C语言申请内存:malloc freeC++: new deleteJava: new ?自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题:忘记回收多次回收没有任何引用指向的一个对象或者多个对象(循环引用)2.如何定位垃圾引用计数根可达算法3.常见的垃圾回收算法标记清除 - 位置不连续 产生碎片拷贝算法 - 没有碎片,浪费空间标记压缩 - 没有碎片,效率偏低4.JVM内存分代模型
2020-07-07 17:00:28
653
转载 CentOS7查看开放端口命令及开放端口号
源连接:https://www.cnblogs.com/hellocjr/p/11431230.html查看已开放的端口firewall-cmd --list-ports开放端口(开放后需要要重启防火墙才生效)firewall-cmd --zone=public --add-port=3338/tcp --permanent重启防火墙firewall-cmd --reload关闭端口(关闭后需要要重启防火墙才生效)firewall-cmd --zone=public --remove-por
2020-07-06 17:31:45
569
1
转载 参数校验validator
这么写参数校验(validator)就不会被劝退了原文链接:https://www.toutiao.com/i6733862304527417860Java的小本家2019-09-08 08:44:00很痛苦遇到大量的参数进行校验,在业务中还要抛出异常或者不断的返回异常时的校验信息,在代码中相当冗长, 充满了if-else这种校验代码,今天我们就来学习spring的javax.validation 注解式参数校验.为什么要用validator1.javax.validation的一系列.
2020-06-27 10:59:01
289
转载 SpringBoot如何优雅的校验参数
SpringBoot如何优雅的校验参数Java架构师CAT2019-12-13 10:02:13前言做web开发有一点很烦人就是要校验参数,基本上每个接口都要对参数进行校验,比如一些格式校验 非空校验都是必不可少的。如果参数比较少的话还是容易 处理的一但参数比较多了的话代码中就会出现大量的IF ELSE就比如下面这样:这个例子只是校验了一下空参数。如果需要验证邮箱格式和手机号格式校验的话代码会更多,所以介绍一下validator通过注解的方式进行校验参数。什么是Validat..
2020-06-27 10:48:10
773
HTML5移动Web开发指南.rar
2013-08-17
经典SQL语句大全
2011-12-17
Linux命令全集(public)
2011-07-09
SQL面试题大全(部分常见ORACLE面试题以及SQL注意事项)
2011-06-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人