自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(415)
  • 资源 (33)
  • 问答 (7)
  • 收藏
  • 关注

原创 为什么MySQL推荐使用自增主键?

主键数据记录本身被存于主索引(一棵B+Tree)的叶子节点上,这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放,因此每当有一条新的记录插入时,MySQL会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB默认为15/16),则开辟一个新的页(节点),如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页;为什么MySQL推荐使用自增主键?

2025-04-28 17:02:24 586 1

原创 与传统累加器对比,LongAdder 为何如此出众?

在使用AtomicLong时,如果是在高并发场景下去同时竞争修改同一个原子变量,由于内部使用的是CAS,只会有一个线程修改成功,这就造成了大量的线程竞争失败后,通过无限循环来不断的进行CAS操作,白白的浪费了CPU资源,在JDK8中为了解决这种问题,提供了LongAdder来进行原子性递增递减LongAdder将一个变量分解为多个变量,在内部维护了多个Cell变量,每个Cell变量中有一个初始值为0的long类型变量。当多线程争夺同一个Cell原子变量时如果失败,并不是在当前Cell变量上一直自旋CAS重试

2025-04-28 16:59:42 308

原创 查看MySql操作日志

今天在排查问题的时候发现数据对不上,怀疑是有些数据被人误删了,那如何知道是否该数据被人删除了呢。如果由于误操作数据,想要进行数据恢复的话,可以。看一下当前记录在哪个日志中了。也可以使用sql语句去查看。找到文件位置之后查看日志。查看MySql操作日志。先看一下日志是否开始了。

2025-04-22 15:57:27 533

原创 一文拆解 Java CAS:从原理到避坑全攻略

之前说在java.util.concurrent.atomic包下提供的原子操作类底层使用的是CAS,那么什么是CAS呢,CAS的全称为Compare And Swap,比较并替换,CAS机制中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。解决这个问题很简单,ABA的本质就是无法感知中间过程,那么加一个版本号就可以了,每次版本号递增1,在比较时,不仅要比较内存地址V和旧的预期值A,还要比较一下版本号。虽然CAS采用的无锁操作来提供性能,但是CAS并不是完美的,存在了很多的不足。

2025-04-22 15:54:13 341

原创 SQL优化

某条查询涉及到大表,无法进一步优化,如果返回的数据量不大且变化频率不高但访问频率很高,此时应该考虑将返回的数据放在应用端的缓存当中或者 Redis 这样的缓存当中,以提高存取速度。返回的数据需要通过网络数据包传回客户端,如果取出的Column越多,需要传输的数据量自然会越大。尽量在查询中加入一些可以提前过滤数据的条件,比如按照时间过滤数据等,可以减少数据的扫描量,对查询更友好;SQL的优化并不是一开始就进行优化的,而是需要先进行观察的,所以SQL优化的步骤应该是这样的。永远使用小结果集驱动大的结果集。

2025-04-11 11:33:11 419

原创 速学!Java 原子操作,开启并发编程新境界

在java.util.concurrent.atomic包下提供了很多原子操作类,多个线程执行一个操作时,其中任何一个线程要么完全执行此操作,要么没有执行此操作的任何步骤,其内部使用的Unsafe来实现的CAS操作。JVM会根据处理器的特性适当的重新排序机器指令,使机器指令更符合CPU的执行特点,最大限度的发挥机器的性能,但是会导致执行顺序可能会与代码顺序不一致。以AtomicInteger为例。

2025-04-11 11:28:25 235

原创 MySQL in和exists的取舍

in的参数是子查询时,会将子查询结果存储在一张临时的表中(内联视图),然后扫描整个视图。之前说过要小表驱动大表,即先遍历小表再遍历大表,接下来看一下in和exists的区别。将主查询数据放到子查询中做验证,根据验证结果来确定主查询结果的去留。根据执行顺序也就得知了什么时候该用in什么时候该用exists了。以外层表作为驱动表,外层表先被访问,适合于外表大而内表小的情况。先执行子查询,适合于外表大而内表小的情况。使用exists数据库不会生成临时的表。in和exists的取舍。

2025-03-31 11:38:02 543 1

原创 别再纠结!IP 存储类型选择攻略来袭

ipv6使用long类型是存储不了的,需要使用BigInteger。ipv4使用long类型进行存储即可。

2025-03-31 11:35:47 375

原创 MySQL的数据文件

mysql的数据都存放在datadir所指的位置,其中包含了mysql中创建的数据库,数据库中包含了表结构(frm文件)、表数据(myd文件)、表索引(myi文件).ibd和.ibdata 用于存储innodb存储引擎的表数据和索引信息。.myi 存储使用myisam存储引擎的表数据文件中任何索引的数据树。.frm 存放和表相关的数据信息,主要包括表结构的定义信息。.myd 存储myisam存储引擎的表数据信息。MySQL的数据文件。

2025-03-24 10:33:51 582

原创 与普通日期格式化对比,FastDateFormat 为何能线程安全?

将格式化格式、时区和国际化作为一个key存在了cInstanceCache中,cInstanceCache是一个ConcurrentHashMap,相当于相同的格式化格式、时区和国际化会使用同一个FastDateFormat实例。那么FastDateFormat为什么是线程安全的呢?首先FastDateFormat是有一个缓存的,在进行实例化的时候是通过cache缓存来获取实例的。而在使用FastDateFormat进行格式化的时候,是在方法中定义的Calendar局部变量,是不会出现线程安全问题的。

2025-03-24 10:27:09 505

原创 MySQL如何存储表情符号?

MySQL中的utf8其实是utf8mb3,最多只用3个字节存储字符,存储不了表情。如果要支持表情,需要使用完整的utf8字符集utf8mb4,可用4个字节来存储。默认mysql的字符集是utf8,排序规则为 utf8_general_ci。utf8和utf8mb4的区别。在存储表情的时候会报。

2025-03-18 11:41:44 1467

原创 困扰无数人的 POI 读取合并单元格内容难题,终于有解了

产品们想到的excel真是千奇百怪,这次又遇到一个读取包含合并单元格的excel文件,一开始直接读取,直接报空了,没办法,只能对于这些列进行判断是否为合并单元格。如果是合并单元格的话,使用单独的方法来进行读取。POI读取合并单元格内容。

2025-03-18 11:38:19 638

原创 连接数问题

在使用mysql时有时候会报too many connections错误,这是连接数过多导致的,然后就会去修改max_connections参数,但是这个参数也不能无上限的增大,容易造成机器内存不足,还是需要找到为什么会有这么多连接的原因。

2025-03-11 10:46:56 417

原创 Excel 后缀竟成 “拦路虎”?POI 读取报错原因大揭秘

由于有时候上传的是xls文件有时候上传的是xlsx文件,使用POIFSFileSystem来读取文件。使用WorkbookFactory来读取excel文件。POI读取excel报错。

2025-03-11 10:42:54 333

原创 MySQL忽略大小写问题

然后查了一下资料,说是utf8_general_ci中的_ci是指忽略大小写Case-insensitive,但是我只设置了字符编码utf8,没有设置为utf8_general_ci呀,原来utf8默认的是就是utf8_general_ci。今天使用MySQL查询时遇到一个问题,使用一个字符串去查询时,查出来两条数据,但是查到的数据大小写并不一样。果然是utf8_general_ci,好吧,那么如何修改呢?我查到了name为a和A的两条数据,这就很奇怪,难道mysql会忽略大小写吗?

2025-03-04 15:28:51 745

原创 Excel 图片插入难题?POI 三招轻松化解

使用HSSFPatriarch来将图片写入EXCEL中。注:在将图片添加到工作簿中时,必须将其存储为字节数组。POI操作EXCEL插入图片。

2025-03-04 15:26:45 533

原创 MySQL自动备份脚本

mysqldump命令将数据库中的数据备份成一个文本文件,表的结构和数据将存储在生成的文本文件中。将备份出来的数据还原到某个数据库中。备份一个数据库下的多个表。MySQL自动备份脚本。也可以登入数据之后进行。

2025-02-24 15:20:05 1065

原创 别再手动合并!POI 操作 Excel 轻松搞定

使用CellRangeAddress进行合并单元格。POI操作EXCEL合并单元格。

2025-02-24 15:17:57 243

原创 MySQL配置文件读取顺序

在启动MySQL数据库时可以没有配置文件,这种情况下,MySQL会按照编译时的默认参数设置启动实例。按照顺序读取配置文件,且如果多个配置文件中有相同的参数,则以读取到的最后一个配置文件为准。

2025-02-18 10:41:43 581

原创 别再瞎摸索!POI 操作 Excel 轻松添加下拉框

有时候通过excel将数据批量导入到系统,而业务操作人员对于一些列不想手动输入,而是采用下拉框的方式来进行选择。可以在EXCEL中的数据有效性看到数据来源。采用隐藏sheet页的方式来进行操作。

2025-02-18 10:39:53 304

原创 MySQL使用count进行行数统计

https://zhhll.icu/2021/数据库/关系型数据库/MySQL/基础/20.MySQL count/](https://zhhll.icu/2021/数据库/关系型数据库/MySQL/基础/20.MySQL count/)在使用count进行数据统计行数时,有时候会使用count(*),有时候会使用count(1),有时候会使用count(列名),那么这些有什么不同呢。当使用列名作为参数时,count函数会自动忽略null值,而使用*或者常量时,就会包含null值。

2025-02-07 14:36:19 468

原创 lombok常用注解

NoArgsConstructor, @RequiredArgsConstructor,@AllArgsConstructor:作用于类上,用于生成构造函数。@Data:作用于类上,是以下注解的集合:@ToString @EqualsAndHashCode @Getter @Setter @RequiredArgsConstructor。@ToString:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。lombok常用注解。

2025-02-07 14:33:16 327

原创 MySQL高级语句

【代码】MySQL高级语句。

2025-01-21 10:11:33 360

原创 java实现邮件带附件发送

有时候发送邮件需要带有附件,可以使用MimeMessageHelper来进行发送附件。

2025-01-21 10:09:30 300

原创 MySQL忘记密码了怎么办

validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;validate_password.special_char_count 整个密码中至少要包含特殊字符的个数;validate_password.number_count 整个密码中至少要包含阿拉伯数字的个数;validate_password.policy 指定密码的强度验证等级,默认为 MEDIUM;2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;0/LOW:只验证长度;

2025-01-14 10:55:29 558

原创 java进行pdf文件压缩

【代码】java进行pdf文件压缩。

2025-01-14 10:43:34 880

原创 MySQL自定义函数

函数与存储过程类似,也是一组预先编译好的SQL语句的集合,但是存储过程可以有0个或多个返回,函数就只能有一个返回。特别提醒一下:我在创建函数的时候出错了。MySQL自定义函数。

2025-01-07 15:51:03 367

原创 java进行图片压缩

使用Thumbnails来进行图片压缩。

2025-01-07 15:48:08 310

原创 MySQL存储过程

存储过程一般是独立执行,而函数一般是作为其他sql语句的组成部分出现。减少了编译次数并且减少了和数据库连接次数,提高效率。INOUT 该参数既可以作为输入,也可以作为输出。存储过程是一组预先编译好的SQL语句的集合。IN 该参数可以作为输入,需要调用方传入。存储过程可以返回多个值,而函数只能返回一个。OUT 该参数可以作为输出,作为返回值。

2024-12-30 10:02:31 417

原创 Druid密码错误重试导致数据库超慢

有同事把项目的数据库密码配错了,导致其他所有连接该数据库的项目全部连接都获取缓慢了,一个页面加载要花费十几秒。由于连接的host全是我们服务器的ip,所以一开始想到的是服务器是不是被黑了,然后频繁的尝试破解数据库密码。如果失败5次后不想重试,直接退出呢?这样就算数据库恢复也不会连接到数据库了,可以这样配置。结果发现pid是我们自己的项目,拉下来代码一看,密码配置的不对。如果连重试都不想重试呢?这样配置的话失败5次之后,会休眠10s在进行重试。druid有个配置是连接重试次数。密码错误重试导致数据库超慢。

2024-12-30 09:58:48 504

原创 MySQL变量

用户变量针对于当前会话有效,用户变量在声明时必须进行初始化。仅在定义该局部变量的begin end中有效。MySQL变量分为系统变量和自定义变量。自定义变量的步骤:声明、赋值、使用。自定义变量分为用户变量和局部变量。系统变量有全局变量和会话变量。

2024-12-24 10:20:16 434

原创 Druid配置大全

【代码】Druid配置大全。

2024-12-24 10:17:32 739

原创 MySQL查询顺序

在sql中对于null值一定要小心处理,true or null的运算结果是true,而false or null的运算结果是null,一旦混入了null,结果就会是null,所以在使用in或者or来进行逻辑运算时,一定要考虑是否会涉及null值。在order by中也可以使用case表达式来根据条件逻辑动态的调整排序项。在进行MySQL查询之前首先要先知道MySQL执行查询语句的执行顺序。使用聚集函数进行计算(sum、max、min、count等)使用order by进行排序。

2024-12-17 11:55:01 429

原创 视频生成缩略图

最近有个需求,视频上传之后在列表和详情页需要展示缩略图。

2024-12-17 11:48:50 592

原创 MySQL约束

MySQL约束数据库有六大约束,分别为NOT NULL 非空约束,用于保证这个字段不能为空DEFAULT 默认约束,用于保证该字段有默认值PRIMARY KEY 主键约束,用于保证该字段可以唯一表示该行记录,唯一且非空UNIQUE 唯一约束,用于保证该字段的唯一性,可以为空CHECK 检查约束(MySQL不支持该约束)FOREIGN KEY 外键约束,用于限制两个表的关系,用于保证该字段必须来自于主表关联列的值(在从表中添加外键约束,用于引用主表中某列的值)示例:create tab

2024-12-10 14:42:34 408

原创 xuggle操作视频

有个需求是要读取视频的宽高,找到了Xuggle和FFmpeg两种方式,FFmpeg很强大,但是我并不需要那些功能,所以使用了轻量一点的Xuggle。该依赖中包含有xuggle-xuggler且maven仓库中存在。可能maven仓库中没有该依赖,可以下载后放到本地仓库或私服。xuggle操作视频。

2024-12-10 14:39:00 675

原创 MySQL删除数据要谨慎

truncate比delete速度快,因为delete每删除一条数据需要在事务日志中为删除的每行数据进行记录,而truncate则通过释放数据页来删除数据,且只在事务日志中记录页的释放。delete删除不会删除自增长字段,再次新增字段时从断点继续自增,truncate删除数据之后自增长字段从1开始。delete可以加where条件进行删除,truncate不可以,只能删除全表数据。delete删除会返回删除的条数,truncate删除不会返回。delete删除可以回滚,truncate删除不可以回滚。

2024-12-03 18:13:15 515 1

原创 java获取汉语拼音

当然是有解决方案的,该工具提供了一个外挂,可以自定义一些词的多音字组合。之前有个需求是要显示汉语拼音,然后找了一个工具包。但是有时候是多音字的怎么处理的,比如长沙市。后续的多音字直接在该文件中加入就行。在一块的话读changsha。

2024-12-03 18:08:04 393

原创 MySQL中的like模糊查询

like与通配符搭配使用进行模糊查询。_ 表示任意单个字符。% 表示任意多个字符。

2024-11-26 14:35:05 618

原创 博客搭建之路:hexo博客next主题使用echarts图表

在next/layout/_layout.swig文件中添加echarts引用(在。在next/scripts/helpers下创建charts.js。在next/layout/archive.swig文件中修改。在next/layout/page.swig文件中修改。在next/layout/page.swig文件中修改。hexo博客next主题使用echarts图表。创建charts.js。添加echarts引用。标签页增加标签统计图。分类页增加分类统计图。归档页增加归档统计图。

2024-11-26 14:31:05 331

mysql元数据工具类

可以获取数据库所有表、获取表字段信息

2024-01-23

Hive-JSON-Serde-1.3.8.zip

Hive-JSON-Serde-1.3.8.zip

2022-05-23

consul_1.10.2_darwin_amd64.zip

consul_1.10.2_darwin_amd64.zip

2022-05-22

hbase-2.2.7-bin.tar.gz

hbase-2.2.7-bin.tar.gz

2022-05-21

Mycat-server-1.6.7.4-release-20200105164103-mac.tar.gz

Mycat-server-1.6.7.4-release-20200105164103-mac.tar.gz

2022-05-20

Nacos-2.0.3.zip

Nacos-2.0.3.zip

2022-05-19

redis-unstable.tar.gz

redis-unstable.tar.gz

2022-05-18

resin-4.0.65.tar.gz

resin-4.0.65.tar.gz

2022-05-17

resin-4.0.65-src.tar.gz

resin-4.0.65-src.tar.gz

2022-05-16

scala-2.13.3.tar

scala-2.13.3.tar

2022-05-15

Sentinel-1.7.2.zip

Sentinel-1.7.2.zip

2022-05-14

apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin.tar.gz

apache-shardingsphere-incubating-4.0.1-sharding-proxy-bin.tar.gz

2022-05-13

sysbench-1.0.20.zip

sysbench-1.0.20.zip

2022-05-12

thrift-0.13.0.tar

thrift-0.13.0.tar

2022-05-11

apache-tomcat-8.5.57-src.tar.gz

apache-tomcat-8.5.57 源码包

2022-05-10

32dbb32e528357ef1ec0b8863dd9--Docker.dmg

macos docker软件包

2022-05-09

elasticsearch-hadoop-6.8.23.zip

elasticsearch-hadoop

2022-05-08

apache-echarts-4.9.0-incubating-src.zip

echarts

2022-05-07

BaiduNetdisk_mac_3.4.1.dmg

百度网盘mac

2022-05-06

edraw-max_cn_full5381.dmg

edraw-max_cn_full5381.dmg

2022-05-05

electerm-1.18.5-mac-x64.dmg

mac 好用的ssh桌面终端软件

2022-05-04

Feishu-3.29.3.dmg

飞书mac

2022-05-03

KDocs_1001_v2.1.0.dmg

KDocs_1001_v2.1.0.dmg

2022-05-02

kplayer201.zip

kplayer201.zip 播放器

2022-05-01

mailmaster.dmg

mailmaster.dmg

2022-04-30

MavenRunHelper.zip

MavenRunHelper

2022-04-29

scala-intellij-bin-2020.1.43

scala-intellij-bin-2020.1.43 idea插件

2022-04-28

WeChatMac安装包

微信mac安装包

2022-04-27

ffmpeg应用程序(mac)

ffmpeg应用程序

2022-04-26

Statistic-4.0.jar

Statistic-4.0.jar

2022-04-25

hadoop-lzo-0.4.16

依赖包

2022-04-22

maven-thrift-plugin-0.1.10

maven插件 maven-thrift-plugin-0.1.10

2022-04-21

thrift-maven-plugin-0.10.0

maven插件jar包

2022-04-20

Typora mac版本 Typora.dmg

Typora编写markdown的神器,0.9.9.34.2

2022-04-19

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

TA关注的人

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