- 博客(9)
- 收藏
- 关注
原创 记一次客户信息查询时长过长的问题(mysql字符集不一致)
前言记一次在公司做java开发时遇到的mysql查询语句过慢的排查,在此记录一下。数据库版本(mysql5.7,本地复现8.0版本)地址表的结构如下客户表结构如下测试以及分析sql语句查询如下:select c.Id, c.CorpId, c2.CorpName as CorpName,c.CustomerName, c.CustomerNo, c.Gende...
2020-04-21 19:22:46
365
原创 MYSQL数据库的主从配置
主从复制原理其实就是集群: 1. 负载均衡 2.失败迁移实现主从同步(主从复制):master将改变的数据,记录在本地的二进制日志文件(binary log);该过程称之为:二进制日志事件slave将mater的binary log 拷贝到自己的relay log(中继日志文件)中中继日志事件,将数据读取到自己的数据库之中MYSQL的主从复制,是异步的,串行化的,有延迟的mas...
2020-03-31 20:49:10
420
转载 一张900w的数据表,怎么把原先要花费17s执行的SQL优化到300ms?(转)
转自 一次SQL查询优化原理分析(900W+数据,从17s到300ms)如需要请跳转至原文查看问题有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 m...
2020-03-31 20:19:05
270
原创 Redis集群搭建(Cluster集群)
一、环境准备三台以上的机器,或者虚拟机,配置好的虚拟机的ip(centOS7.0)虚拟机ipA192.168.52.137B192.168.52.136C192.168.52.135二、开始安装(单机版)首先下载redis,然后解压继而得到解压后的Redis目录,执行编译命令。但是在这里可能会遇到一些错误wget没有安装,那么你需要通过yum...
2020-02-26 14:16:19
357
原创 基于centos7.0系统-简单搭建zookeeper集群3.4.12
一、准备环境Zookeeper节点部署越多,服务的可靠性越高,建议部署奇数个节点,因为zookeeper集群是以宕机个数过半才会让整个集群宕机的准备3台机器(虚拟机VM_ware + centos7.0系统),并都装好JDK。ip分别为:192.168.52.132192.168.52.134192.168.52.135下载好的zookeeper安装包(zookeeper-3.4....
2020-02-23 01:40:35
231
转载 线上CPU100%排查(转)
生产服务器上部署了几个java程序,突然出现了CPU100%的异常告警,你如何定位出问题呢?以下为两种系统下的排查步骤,都是一模一样的,只是命令稍有区别查消耗cpu最高的进程PID根据PID查出消耗cpu最高的线程号根据线程号查出对应的java线程,进行处理准备一行死循环代码 并运行: for (int i = 0; i < 100; ) { i = i * ...
2019-03-20 10:28:13
361
原创 java基础-类的加载
加载基本原理java虚拟把描述类的数据从Class文件加载到内存中,并对数据进行加载,验证,准备,解析,初始化,使用,卸载的一个过程,最终是可以被虚拟机直接使用的java类型,我们称之为类的加载加载:HotSpot中,java.lang.Class对象存放在方法区中(并非所有对象都存在堆中)验证:连接阶段第一步,确保当前Class文件的字节流符合要求且不会危害虚拟机自身的安全;格式验证:...
2019-03-19 14:49:30
195
原创 java基础-反射理解(整理)
原理Java在运行时能识别对象和类的信息,主要有2种方式:一种是传统的RTTI,它假定我们在编译时已经知道了所有的类型信息;另一种是反射机制,它允许我们在运行时发现和使用类的信息。即对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;并且能改变它的属性。Class对象Class对象就是用来创建所有“常规”对象的,Java使用Class对象来执行R...
2019-03-18 16:00:18
207
原创 Timer定时器和ScheduledThreadPoolExecutor类执行任务时出现的问题
前言:最近在做一个关于数据同步的项目,其中需要使用到定时去执行一个同步的方法(每隔三分钟执行一次)。遇到了许多坑,所以在此总结一下。一、开始没有使用定时器,而是使用了while(true) 去执行一个线程,在run方法中进行执行需要定时的方法。public class SyncDBRunale implements Runnable{ @Override public void run()...
2018-05-30 22:30:01
507
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅