自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

转载 Linux硬盘合并

目的将两块空硬盘合并为“一块”,挂载到指定目录下,达到在一个目录使用2块硬盘所有空间的效果。条件硬盘1 /dev/sdb硬盘2 /dev/sdc方法创建pvpvcreate /dev/sdb //硬盘1pvcreate /dev/sdc //硬盘212创建vg//vgcreate [自定义LVM名称] [设备]//先使用硬盘1创建vg:LVMvgcreate LVM /dev/sdb123扩展vg//vgextend [自定义vg名称] [设备] //...

2021-06-22 18:10:07 2

原创 linux 系统学习

https://linuxtools-rst.readthedocs.io/zh_CN/latest/base/index.html

2021-05-31 17:46:53 2

原创 查询本地机器的外网ip

浏览器访问:http://www.cip.cc 即可返回

2021-05-28 16:20:18 8

原创 MySQL查看数据库、表的占用空间大小

查看指定库的大小SELECT SUM(DATA_LENGTH)+SUM(INDEX_LENGTH) FROM information_schema.tables WHERE TABLE_SCHEMA='database_name';结果是以字节为单位,除1024为K,除1048576为M查看各表的大小SELECT TABLE_NAME,DATA_LENGTH+INDEX_LENGTH,TABLE_ROWS FROM information_schema.tables WHERE TABL

2021-05-27 15:28:03 4

原创 mysql 优化器生成执行计划以及选择最优计划的过程跟踪

前面介绍了explain json详情的查看,现在介绍下怎么查看优化器生成执行计划以及选择最优计划的过程语法SET optimizer_trace='enabled=on';执行的sql;SELECT TRACE,MISSING_BYTES_BEYOND_MAX_MEM_SIZE,INSUFFICIENT_PRIVILEGES FROM INFORMATION_SCHEMA.OPTIMIZER_TRACE;示例由于json字符串比较大,只截取前面一部分...

2021-05-18 18:15:16 2

转载 Linux core文件的产生和调试

在Linux下程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。注:1. 当然首先编译时要带上gdb信息1. core文件的生成开关和大小限制1.1使用ulimit -c命令可查看core文件的生成开关。若结果为0,则表示关闭了此功能,不会生成core文件。1.2 使用ulimit -c filesize命令,可以...

2021-05-18 14:18:03 11

原创 mysql 指定优化器使用某个索引

关键字USE INDEX(a): 提示优化器使用a索引 (优化器不一定会用)FORCE INDEX (a): 强制优化器用a索引不指定USE INDEX(a) 提示注:由于数据量太小优化器直接全表扫描,可以一次全部加载所有数据,没有使用提示的update_time indexFORCE INDEX (a) 强制...

2021-05-18 11:12:11 4

原创 查看sql真实执行时间(排除网络影响)

set profiling=1;真实sqlshow profiles;例如:set profiling=1;SELECT cluster_nameFROM cluster_infoWHERE update_time > '2021-02-20 17:57:03'ORDER BY update_time;show profiles;

2021-05-18 11:04:08 2

原创 mysql explain 过程json追踪打印

explain format=json 真实执行sql 可以查看优化器cost值例:explain format=jsonSELECT cluster_nameFROM cluster_info FORCE INDEX (update_time)WHERE update_time > '2021-02-20 17:57:03'ORDER BY update_time...

2021-05-18 10:59:04 4

转载 MySQL体系结构

了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的1、Connectors指的是不同语言中与SQL的交互2 、Management Serveices & Utilities: 系统管理和控制工具3 、Connection Pool: 连接池。管理缓冲用户连接,线程处理等需要缓存的需求4 、SQL Interface: SQL接口。接受用户的SQL命令,并且返回用户需要查询的结果。比如select from...

2021-04-29 15:17:00 1

转载 MySQL 逻辑架构

下面就是MySQL的逻辑架构,sql layer主要负责如下功能:权限判断、sql解析、执行计划优化、query cache的处理等操作,这些操作都是在数据库系统处理底层数据之前的工作;Storage Engine Layer主要负责底层数据存取的实现,由多种存储引擎共同组成。SQL Layer 中包含了多个子模块,下面我将逐个做一下简单的介绍:结构图如下:1、初始化模块顾名思议,初始化模块就是在mysqlServer 启动的时候,对整个系统做各种各样的初始化操作,比如...

2021-04-29 15:05:59 9

转载 MySQL实战45讲——丁奇

《MySQL实战45讲》1~15讲 —丁奇,学习笔记《MySQL实战45讲》16~30讲 —丁奇,学习笔记《MySQL实战45讲》31~45讲 —丁奇,学习笔记《MySQL实战45讲》个人总结Mysql加锁情况

2021-04-13 15:16:41 60

原创 shell 解析json字段

示例json(为了方便查看结果已格式化): json={ "codeNo":200, "message":"Requestsuccessful.", "data":{} }message=$(echo $json| grep -Po '"message":.*?[^\\]",'| perl -pe 's/"message": //; s/^"//; s/",$//')echo $messa...

2021-03-08 15:50:14 88

原创 超级实用的Git命令

新建创建一个新的 git 版本库。这个版本库的配置、存储等信息会被保存到.git 文件夹中# 初始化当前项目$ git init# 新建一个目录,将其初始化为Git代码库$ git init [project-name]# 在指定目录创建一个空的 Git 仓库。运行这个命令会创建一个名为 directory,只包含 .git 子目录的空目录。$ git init --bare <directory># 下载一个项目和它的整个代码历史# 这个命令就是将一个版本库拷贝

2020-12-18 18:52:14 18 2

原创 linux 用普通账户登录root用户

在普通用户下执行sudo bash -c "su - root"输入普通用户的密码即可切换到root

2020-12-16 16:04:28 124

原创 Jenkins 取消并发任务中的重复任务

当jenkins 并发任务比较多时候,可能会出现同样的参数并发执行的,这样会浪费资源。我们可以取消前面的build 用最新的去跑stage('check repeat build'){ //list元素数为并发数-1,后面一个元素在前一个元素基础上 多一个 .getPreviousBuild(),如需增加并发数需要在pre_build尾部追加元素即可 List pre_build = [ currentBuild.getPreviousBuild().getRawBui...

2020-12-09 14:03:49 123

转载 查询优化器工作原理

对于一个SQL语句,查询优化器先看是不是能转换成JOIN,再将JOIN进行优化优化分为:1. 条件优化,2.计算全表扫描成本,3. 找出所有能用到的索引,4. 针对每个索引计算不同的访问方式的成本,5. 选出成本最小的索引以及访问方式文章目录 一、开启查询优化器日志 二、优化器原则 三、基于成本的优化步骤 四、基于索引统计数据的成本计算 五、统计数据 一、开启查询优化器日志-- 开启set optimizer_trace="enabled=on"; --..

2020-11-11 17:01:58 44

转载 MySQL 调优 | OPTIMIZER_TRACE详解

MySQL 调优 | OPTIMIZER_TRACE详解TIPS本文基于MySQL 8.0编写,理论支持MySQL 5.6及更高版本。OPTIMIZER_TRACE是MySQL 5.6引入的一项跟踪功能,它可以跟踪优化器做出的各种决策(比如访问表的方法、各种开销计算、各种转换等),并将跟踪结果记录到INFORMATION_SCHEMA.OPTIMIZER_TRACE表中。此功能默认关闭,开启后,可分析如下语句:SELECT INSERT REPLACE UPDATE DELE..

2020-11-11 16:03:20 24

转载 MySQL EXPLAIN 解读

EXPLAIN作为MySQL的性能分析神器,读懂其结果是很有必要的,然而我在各种搜索引擎上竟然找不到特别完整的解读。都是只有重点,没有细节(例如type的取值不全、Extra缺乏完整的介绍等)。所以,我肝了将近一个星期,整理了一下。这应该是全网最全面、最细致的EXPLAIN解读文章了,下面是全文。文章比较长,建议收藏。TIPS本文基于MySQL 8.0编写,理论支持MySQL 5.0及更高版本。EXPLAIN使用explain可用来分析SQL的执行计划。格式如下: 1

2020-11-11 15:51:31 31 1

原创 shell 解析json

data='{"codeNo": 200, "message": "success", "data": {"status": 1, "build_date": "20201105", "update_time": "2020-11-05 18:14:14", "product": "polardb80", "id": 148, "commit_id": "c7552a8eedbc1d485d1132e6af26843988297be9", "branch": "master-2.0", "build_...

2020-11-06 11:37:16 114

转载 使用Docker搭建MySQL服务

使用Docker搭建MySQL服务一、安装dockerwindows 和 mac 版可以直接到官网下载 docker desktoplinux 的安装方法可以参考https://www.cnblogs.com/myzony/p/9071210.html可以在shell中输入以下命令检查是否成功安装:sudo docker version二、建立镜像 拉取官方镜像(我们这里选择5.7,如果不写后面的版本号则会自动拉取最新版) docker pull mysql:5.7 ..

2020-06-16 15:24:59 64

原创 java8分组+拼接字段 代替数据库 group by+group_concat()

最近在写一个需求分组后拼接字段,在页面展示。我本在sql层面实现了,用的group by分组 group_concat函数拼接字段。但是被reivew时被告知不能用group_concat函数,复杂操作需要业务层进行。就写了java去实现 group by + group_concat的功能业务场景脱敏后如下:根据姓名分组,分组后多个年龄和爱好用“,”拼接public static void main(String[] args) { List<Student...

2020-06-08 15:37:33 1407

原创 linux安装docker环境

安装: yum install -b current docker-engine-selinux;yum install -b current docker-ce查看: yum list installed | grep docker启动:systemctl start docker查看:systemctl status docker...

2020-04-01 15:21:09 55

原创 window mysql8 安装教程

1、下载mysql安装包,版本自己定 ,本教程以mysql-8.0.12-winx64为例https://dev.mysql.com/downloads/mysql/2、解压3、修改my.ini文件3、进入解压后的mysql路径中的bin路径 ,按住shift 鼠标右键 在此处打开命令窗口相关脚本:mysqld --installmy...

2020-01-23 12:22:27 65

原创 linux根据文件中的关键字查找对应的文件名称

在当前目录下查找包含test_key关键字的文件:find . -name '*' -type f | xargs grep "test_key"| awk -F : '{ print $1 }' | uniq

2019-11-28 15:29:15 885

转载 Linux排查cpu、内存、io过高

情况1:CPU高、Load高通过top命令查找占用CPU最高的进程PID;通过top -Hp PID查找占用CPU最高的线程TID;对于java程序,使用jstack打印线程堆栈信息;通过printf %x tid打印出最消耗CPU线程的十六进制;在堆栈信息中查看该线程的堆栈信息;情况2:CPU低、Load高通过top命令查看CPU等待IO时间,即%wa;通过iostat -d -...

2019-11-14 10:35:46 436

原创 多线程 ---- CountDownLatch

最近在重构并优化之前的代码,一个简单的接口单线程查了12次数据库相应时间1300ms最左右,这还是数据量在几百条的时候。有代码洁癖的我不能容忍。于是乎,优化他。由于需要等待结果全部返回,所以我选择了CountDownLatch+线程池+CompletableFuture实现。CountDownLatch是一种java.util.concurrent包下一个同步工具类,它允许一个或多个线程等待直...

2019-11-01 22:45:58 73

原创 java高并发之魂:Synchronize

synchronize在高并发领域可谓是元老级别了,博主最近整理了一下synchronize的用法,和简单的概念。概念对象锁:包括 方法锁(默认锁对象为this当前实例对象)和同步代码块锁(自己指定锁对象)类锁:指synchronized 修饰静态的方法或指定锁对象为Class对象。用法同步代码块锁用this锁:自己指定锁:用this时,2个线程用的是同...

2019-10-08 16:41:14 76

原创 java技术栈精品文章收集

精品文章搜云库技术分享博客园——developer(源码解析)响应式编程记一次隐藏很深的 JVM 线上惨案的分析、排查、解决!Spring Boot 中的 Tomcat 是如何启动的?阿里大佬教你,如何写好 Java 代码!一份完整的 MySQL 开发规范,进大厂必看!懵圈了,面试官问一个 TCP 连接可发多少个 HTTP 请求?Java 和操作系统交互,你猜会...

2019-09-23 14:29:04 163 1

原创 linux删除指定文件之外的所有文件

删除指定路径下除a之外的所有文件rm -rf !(a)删除指定路径下除了a b 。。之外的所有文件1. ls | grep -v a.txt|grep -v b.txt|xargs rm -rf2. rm -rf !(a|b)

2019-08-20 14:44:57 75

原创 _mysql_exceptions.OperationalError: (2059, "Authentication plugin 'caching_sha2_password' cannot be

在python中引入MySQLdb库,执行conn = MySQLdb.connect(host=global_cnf.host, port=int(global_cnf.port), user=global_cnf.user )连接mysql8时候报错:_mysql_exceptions.O...

2019-06-19 16:11:59 356

原创 Linux端口操作常见命令

Linux端口操作常见命令一、查看哪些端口被打开 netstat -anp二、关闭端口号:iptables -A INPUT -p tcp --drop 端口号-j DROPiptables -A OUTPUT -p tcp --dport 端口号-j DROP三、打开端口号:iptables -I INPUT -ptcp --dport 端口号 -j ACCEPT四、以下是l...

2019-05-24 15:10:03 114

原创 java多线程异步

背景最近遇到多数据库执行sql处理后生成报表,项目原有逻辑是单线程同步执行的,随着数据量的增大时间越来越长,我忍不住要优化。考虑一定得用多线程处理,那就首先需要线程池了,毕竟没有线程池的情况下很容易出现无休止创建线程是非常危险的。实现代码伪代码//创建线程池ExecutorService executor = Executors.newFixedThreadPool(4);...

2019-05-17 17:49:29 2686

原创 mysql存储引擎的选择

mysql作为一款免费开源的数据库,使用热度一直居高不下。下面分析一下mysql架构及对于mysql存储引擎的选择。mysql逻辑架构第一层客户端链接,这个在很多数据库上都是相同的逻辑,不做过多的赘述。第二层是mysql比较有意思的部分。大部分mysql的核心服务功能都在这一层,包括查询解析,分析,优化,缓存以及所有的内置函数,例如日期,时间,数字加等。所有跨存储引擎的功能...

2019-05-16 16:04:36 178

原创 shell脚本执行sql语句

语法内嵌式(sql直接在sh脚本内嵌套)mysql -P端口号 -u用户名-p密码 -e "需要被执行的sql"独立式(sql在单独的文件中)前提:将sql写在创建的test.sql文件中,并且和脚本文件在同级目录下3种执行方式mysql -P端口号 -u用户名-p密码 < test.sql mysql -P端口号 -u用户名-p密码 -...

2019-05-07 11:09:26 9133

原创 mysql主从复制(一主一从,多主一从)

概述:MySQL 的主从复制是通过他的归档日志(binlog) 来实现的。基本的过程就是从库在一个线程中和主库建立一个长连接,告诉主库从主库同步的 binlog 的位置,然后主库将这个位置之后的 binlog 日志内容发送给从库,从库获取到主库发送过来的 binlog 内容后先写入到本地的中转日志(relaylog)中,然后从库另一个进程在从中转日志中读取内容并解析成为 sql 语句在从库中执...

2019-05-05 10:52:04 786

原创 jenkins入门(含定时,多节点)

前几天拿到一个需求,项目都要进行CI(持续集成),CD(持续交付),经过一番调研决定用jenkins实现,网上搜了好多,但是jenkins版本不同,部署配置方式也有出入,也踩了很多坑。线下把部署的过程分享一下(jenkins服务器ip:192.168.2.129):1.安装1.1.jenkins的方式有多种,我选择从官网下载war包(https://jenkins.io/downl...

2019-04-29 16:48:29 649

原创 shell脚本分割字符串----获取mysql8初始密码

准备知识:准备知识参考文章:https://blog.csdn.net/ever_peng/article/details/87697720cut是一个选取命令,就是将一段数据经过分析,取出我们想要的。一般来说,选取信息通常是针对“行”来进行分析的,并不是整篇信息分析的。其语法格式为:cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df...

2019-04-19 16:19:10 693 1

原创 UUID与自增ID

最近有小伙伴问博主关于主键ID的选取问题(UUID与自增ID)。我简单的总结一下; 如果站在数据库层面上,就拿mysql举例吧。默认采用的Innodb索引。1.字段长度方面对比 博主在上一篇中也讲到了索引选取时候应该选择短的字段作为索引来降低索引的大小,这样在一个磁盘分片中可以存储更多的索引量,同样的缓存大小,可以容纳更多的索引量,从而加载的速度就会加快。从这个角...

2019-03-25 21:22:36 2908

原创 浅析Mysql索引Innodb及底层存储结构B+树

前言最近博主在学习mysql索引相关知识,看了很多博客,公开课然后自己总结一下,最近的收获吧。本文从二叉树->平衡二叉树->B树(有同学读B减树,是不正确的) ->B+树 再到B+树在Myisam和Innodb中的体现形式,会提到索引失效的情况,以及创建索引时的一些注意事项及其原理。采用大量的图片+部分文字更加清晰的描述。其中部分图片来源于咕泡学院公开课。准备提到my...

2019-01-09 19:13:22 2351 1

空空如也

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除