<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[长得赛的博客]]></title><description><![CDATA[排除最不可能的，剩下的只能是真相]]></description><link>https://blog.youkuaiyun.com/Zhs_2000</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Zhs_2000]]></copyright><item><title><![CDATA[MySQL主键类型使用varchar还是bigint？]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/120415768</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/120415768</guid><author>Zhs_2000</author><pubDate>Wed, 22 Sep 2021 17:18:00 +0800</pubDate><description><![CDATA[主键使用bigint和varchar对比
环境准备
准备两张表
除了id的类型不一样其他都一样
table1：

table2：

准备100w条数据
id长度19位
两张表数据一致
table1、table2

数据对比
table1：

table2：

使用mysql自带的表information_schema.tables查看表的大小信息
information_schema.tables表里的数据不准，使用count统计，行数对不上，
不知道有没有别的方法统计表大小，先凑合（有没有大神，请赐教）
]]></description><category></category></item><item><title><![CDATA[Java必会工具库，从此远离辣鸡代码（建议收藏）]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/118410170</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/118410170</guid><author>Zhs_2000</author><pubDate>Fri, 09 Jul 2021 11:20:15 +0800</pubDate><description><![CDATA[前言
好的工具库可以简化代码，提高开发效率
一.Java自带工具库
1.比较两个字符串是否相等
可以同时校验两个字符串为空，防止空指针
Objects.equals(strA, strB);  


]]></description><category></category></item><item><title><![CDATA[MyCat分表配置]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/118020085</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/118020085</guid><author>Zhs_2000</author><pubDate>Thu, 01 Jul 2021 16:15:29 +0800</pubDate><description><![CDATA[Mycat分库分表——配置篇
准备
环境准备：mysql 5.7、mycat 1.6.7.1-release
准备三个表结构相同的表：分别为user1、user2、user3
CREATE TABLE `user1` (
  `id` int(11) NOT NULL COMMENT '主键id',
  `name` varchar(32) DEFAULT NULL COMMENT '名称',
  `sex` char(1) DEFAULT NULL COMMENT '性别 0-女 1-男',
  `pho]]></description><category></category></item><item><title><![CDATA[MyCat读写分离配置]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/118092796</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/118092796</guid><author>Zhs_2000</author><pubDate>Mon, 21 Jun 2021 19:26:49 +0800</pubDate><description><![CDATA[环境准备
mysql 5.7
mycat 1.6.7.1-release
一主一从
master：10.0.60.8:3307
slave：10.0.60.8:3308
配置
实现读写分离前需要实现主从复制
但是mycat 不负责任何的数据同步问题。
所以得自己配置mysql主从复制
只需要配置schema.xml即可
方式1：
&lt;dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType=]]></description><category></category></item><item><title><![CDATA[MySQL主从复制]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/118089490</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/118089490</guid><author>Zhs_2000</author><pubDate>Mon, 21 Jun 2021 17:08:08 +0800</pubDate><description><![CDATA[MySql——主从复制
环境准备
Docker：19.03.4
Mysql：8.0.18
一主一从
master：10.0.60.8:3307
slave：10.0.60.8:3308
配置
1.进入mysql容器

docker exec -it mysql bash

2.编辑mysql配置文件

vim /etc/mysql/my.cnf

3.主从数据库配置文件添加如下配置

#开启binlog功能
log-bin=mysql-bin
#服务器id 唯一
server-id=1
#不参与主从的数据库]]></description><category></category></item><item><title><![CDATA[MyCat踩坑]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/117823878</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/117823878</guid><author>Zhs_2000</author><pubDate>Thu, 17 Jun 2021 11:00:34 +0800</pubDate><description><![CDATA[Mycat分库分表——踩坑记录
前言
在此记录使用mycat踩坑之路
踩坑记录
坑一：配置好逻辑库后，使用navicat或sqlyng等数据库视图工具连接逻辑库，双击表名查询表，然后就报找不到这张表，但是配置啥的没问题。
解决1：逻辑库名和实体库名、逻辑表名和实体表名一致；（如果这样配置，就不好配置分库分表了）
解决2：使用sql查询。

坑二： Caused by: org.xml.sax.SAXParseException; lineNumber: 34; columnNumber: 14; 元素类型为]]></description><category></category></item><item><title><![CDATA[MyCat分库分表概念]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/117749998</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/117749998</guid><author>Zhs_2000</author><pubDate>Fri, 11 Jun 2021 16:18:11 +0800</pubDate><description><![CDATA[Mycat分库分表配置——水平拆分
前言
项目的数据库单表数据已经超2千万，再不拆分，领导就要叫我写脚本定时删数据了，虽然是些垃圾数据
那我还是选择前者，拆分。
配置
schema.xml
&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE mycat:schema SYSTEM "schema.dtd"&gt;
&lt;mycat:schema xmlns:mycat="http://io.mycat/"&gt;
    &lt;schema name="TEST_DB" c]]></description><category></category></item><item><title><![CDATA[Linux最全最常用命令（建议收藏）]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/115309025</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/115309025</guid><author>Zhs_2000</author><pubDate>Tue, 30 Mar 2021 09:52:19 +0800</pubDate><description><![CDATA[Linux常用命令
整理备用
1.ls查看目录文件信息

ls -l   #文件详细信息列表

2.cd进入目录

cd - 进入上一次工作路径

3.pwd查看当前所在目录
4.mkdir创建文件夹
5.rm删除

rm -rf 直接删除

6.mv移动或修改文件名
7.cp复制文件
8.cat显示文件所有内容
9.less 分页查看文件

/：向下搜索
?：向上搜索
n：重复前一个搜索（与 / 或 ? 有关）
N：反向重复前一个搜索
q：退出

10.tail查看末尾文件

tail -f 实时查看文件]]></description><category></category></item><item><title><![CDATA[docker常用命令]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/114933328</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/114933328</guid><author>Zhs_2000</author><pubDate>Wed, 17 Mar 2021 16:01:45 +0800</pubDate><description><![CDATA[docker常用命令
一、镜像
1.查看镜像列表

docker images

2.删除镜像

docker rmi 镜像id

3.导出镜像

docker save -o xxx.tar

4.导入镜像

docker load -i xxx.tar

5.启动镜像

docker run -d --name mysql(容器名)  -p 3306(主机端口):3306(容器端口)  镜像名

二、容器
1.查看运行中的容器

docker ps

2.查看所有容器

docker ps -a

3.]]></description><category></category></item><item><title><![CDATA[Code Review(代码评审规范)]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/113120747</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/113120747</guid><author>Zhs_2000</author><pubDate>Mon, 25 Jan 2021 16:31:37 +0800</pubDate><description><![CDATA[Code Review(代码评审规范)
1.Code Review目的
Code Review是一种用来确认方案设计和代码实现的质量保证机制，通过这个机制我们
可以对代码、测试过程和注释进行检查。
Code Review主要用来在软件工程过程中改进代码质量，通过Code Review可以达到
如下目的：

在项目早期就能够发现代码中的bug，将bug扼杀在摇篮中。
帮助初级开发人员学习高级开发人员的经验，达到知识共享。
避免开发人员犯一些很常见，很普通的错误。
保证项目组人员的良好沟通。
项目或产品的代码更]]></description><category></category></item><item><title><![CDATA[mybatis-plus代码生成器]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/111047064</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/111047064</guid><author>Zhs_2000</author><pubDate>Fri, 11 Dec 2020 17:42:32 +0800</pubDate><description><![CDATA[前言
还在写curd？
有了mybatis-plus，curd都不用写了。
话不多说直接粘代码
mybatis-plus
public class MpGenerator {
    /**
     * &lt;p&gt;
     * MySQL 生成
     * &lt;/p&gt;
     */
    public static void main(String[] args) {
        AutoGenerator mpg = new AutoGenerator();
       ]]></description><category></category></item><item><title><![CDATA[10个少儿编程认识误区]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/110422513</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/110422513</guid><author>Zhs_2000</author><pubDate>Fri, 04 Dec 2020 14:58:07 +0800</pubDate><description><![CDATA[以后孩子又不一定当程序员，为什么要学编程？
学编程是来玩游戏的吧？
女孩子学什么编程？编程更适合男孩子！
我的孩子才几岁啊，根本学不懂
……
说到少儿编程，部分家长还存在着一些认知误区，这也是情有可原的。毕竟少儿编程在国内还不像一些发达国家已经全面普及，在欧美等教育发达国家，编程已经被列入中小学必修课（欧盟已有15国将编程列为必修课）。
今天，针对家长对编程方面的一些误区，小编决定为大家逐一解答。
1、以后孩子又不当程序员，为何要学编程？
一听到少儿编程，很多家长的第一反应就是：不学不学，我家孩子未来又不当]]></description><category></category></item><item><title><![CDATA[徒手搭建SpringBoot基础框架]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/110468750</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/110468750</guid><author>Zhs_2000</author><pubDate>Fri, 04 Dec 2020 11:40:40 +0800</pubDate><description><![CDATA[前言
项目框架构建每个公司要求都不同，没有什么“一定是最好的”标准，但一个优秀的后端框架和一个糟糕的后端框架对比起来差异还是蛮大的，其中最重要的关键点就是看是否规范!
本文就一步一步演示如何构建起一个优秀的后端框架体系。
构建项目
导入web依赖
&lt;dependency&gt;
	&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
	&lt;artifactId&gt;spring-boot-starter-web&lt;/artifactI]]></description><category></category></item><item><title><![CDATA[Mybatis批量插入数据对比]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/110235163</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/110235163</guid><author>Zhs_2000</author><pubDate>Fri, 27 Nov 2020 17:34:14 +0800</pubDate><description><![CDATA[前言
业务场景中有很多批量插入数据的场景：
比如：数据库需要造几百万条数据，又或者excel批量导入数据…
这里主要讲使用MyBatis批量导入数据的两种方式，及对比。
环境与数据准备
数据库统一使用了MySQL 5.7.31 ，JDK 1.8，关键pom依赖版本：
&lt;dependency&gt;
    &lt;groupId&gt;mysql&lt;/groupId&gt;
    &lt;artifactId&gt;mysql-connector-java&lt;/artifactId&gt;
]]></description><category></category></item><item><title><![CDATA[MySQL之慢查询sql排查及优化]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/110044522</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/110044522</guid><author>Zhs_2000</author><pubDate>Wed, 25 Nov 2020 11:59:38 +0800</pubDate><description><![CDATA[前言
sql语句优化的方式：
1.尽量少 join
2.尽量少排序
3.尽量避免 select *
4.尽量少 or
5.尽量用 union all 代替 union
…
（优化的方式有很多，这里就不一一举例了）
当你避免这些问题的时候，为什么sql查询还是这么慢？
排查慢查询sql
ps：mysql版本为5.7
1.连接mysql

mysql -uroot -p


2.查看数据库服务慢查询日志是否开启

show variables like ‘slow_query_log’;


3.开启慢查询

]]></description><category></category></item><item><title><![CDATA[使用JMeter进行接口压测]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/109842656</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/109842656</guid><author>Zhs_2000</author><pubDate>Fri, 20 Nov 2020 15:36:16 +0800</pubDate><description><![CDATA[最近搞接口压测，学了下JMeter的基本使用，特此记录一下
一、下载
官网：https://jmeter.apache.org/download_jmeter.cgi
百度网盘：https://pan.baidu.com/s/1LJmLjhyf9Hi6wBSGhWmWvQ
提取码：ugt1
二、环境配置
下载完成后，解压到任意目录
添加系统环境变量
变量名：JMETER_HOME
变量值：D:\apache-jmeter-5.3

变量名：CLASSPATH追加

%JMETER_HOME%\lib\ext]]></description><category></category></item><item><title><![CDATA[linux检测Java程序挂掉自动重启]]></title><link>https://blog.youkuaiyun.com/Zhs_2000/article/details/109837996</link><guid>https://blog.youkuaiyun.com/Zhs_2000/article/details/109837996</guid><author>Zhs_2000</author><pubDate>Fri, 20 Nov 2020 09:39:03 +0800</pubDate><description><![CDATA[Java服务挂了自	动重启一、准备脚本二、添加定时任务
最近接了个需求：java服务异常崩溃自启。
我在想这个需求是否合理，为什么不保证服务高可用，而是等服务挂了重启它，在这个过程中还是会有请求进不来，数据会丢失，算了，懒得跟需求方争辩（怕打起来），还是先暂时解决问题。
一、准备脚本
#!/bin/sh
 
#切换到目录
cd /usr/local/app
date=`date`
 
#查询端口占用
lsof -i:8080
 
# $? -ne 0 不存在 $? -eq 0存在 
if [ $? -ne ]]></description><category></category></item></channel></rss>