随便写写
  • 首页
  • 每日AI图
  • 归档
  • 分类
  • 标签
  • 专栏
    Spring AI 混淆技术研究笔记
  • 开源项目
    PageHelper mybatis-mapper tk-mapper
  • 关于
GitHub Copilot - Elasticsearch 和 MySQL 单表查询耗时比对

GitHub Copilot - Elasticsearch 和 MySQL 单表查询耗时比对

当单表数据库超过百万后,数据库 like '%xxx%' 查询明显变慢,为了对比 Elasticsearch 的效果,将百万级的测试数据导入到 Elasticsearch 中对比看看效果。导入和查询 Elasticsearch 的过程完全通过 GitHub Copilot Chat 辅助编码。 Elasticsearch 环境使用 Docker Compose 快速搭建环境,com
2023-12-13
技术文章 > 性能
WSL 配置 Docker 内存和 CPU 资源限制

WSL 配置 Docker 内存和 CPU 资源限制

我用的电脑一共有40G内存,最近发现电脑重启后,VmmemWSL 进程很快就会占用一多半的内存(20+G),电脑中有多个停止运行的容器,正常启动状态的只有一个 MySQL 服务,通过 docker stats 查看占用内存也不多,不知道为什么会占用这么多内存,但是必须限制一下。 Docker Desktop 早期版本可以直接配置内存使用,改成 WSL 方式后需要去调整 WSL 的资源使用,参考官方
2023-12-06
技术文章 > 运维 > Docker
Windows 系统配置 GraalVM 的 native-image 环境

Windows 系统配置 GraalVM 的 native-image 环境

由于 GraalVM 和相关组件会更新变化,所以文章内容的有效性会受影响。 1. 下载 GraalVM打开官网 https://www.graalvm.org/ 点击 Download 下载。 在当前时间(2023-11-29)我下载的版本为: graalvm-jdk-21_windows-x64_bin.zip 解压 GraalVM,例如目录 D:\Dev\graalvm-jdk-21.
2023-11-30
技术文章 > 运维
MyBatis 分页插件 PageHelper 6.0.0 发布

MyBatis 分页插件 PageHelper 6.0.0 发布

6.0.0 - 2023-11-05 基于jdk8适配,6.0开始不支持jdk6和7,如果有需要可以使用5.x版本 增加异步count支持,全局配置asyncCount,默认false,单次设置:PageHelper.startPage(1, 10).enableAsyncCount();异步使用独立连接(事务)查询,有增删改操作影响查询时不适合开启异步查询。closed #334 JSqlP
2023-11-06
开源项目 > 分页插件
Virtual Threads 虚拟线程

Virtual Threads 虚拟线程

原文:https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html 虚拟线程是轻量级线程,可以减少编写、维护和调试高吞吐量并发应用程序的工作量。 有关虚拟线程的背景信息,请参阅 JEP 444。 线程是可调度的最小处理单元。它与其他此类单元同时运行,并且基本上独立运行。它是 java.lang.Thread 的一个实
2023-09-20
技术文章 > Java
虚拟线程最佳实践

虚拟线程最佳实践

Virtual Threads: An Adoption Guide虚拟线程:采用指南 接上篇 Virtual Threads 虚拟线程 原文:https://docs.oracle.com/en/java/javase/21/core/virtual-threads.html 虚拟线程是由 Java 运行时而不是操作系统实现的 Java 线程。虚拟线程和传统线程(我们称之为平台线程)之间的主
2023-09-20
技术文章 > Java
Linux环境Runtime如何运行子进程?

Linux环境Runtime如何运行子进程?

在Linux服务器上通过Java的Runtime运行命令时可能会报错:Cannot run program "pwd": error=13, Permission denied。 在制作Linux服务器上的产品安装包时遇到了这个错误,各种搜索资料都找不到解决办法,经过对比分析确定最后的问题后,顺藤摸瓜找到了一些资料。 1. 问题产生的原因因为要制作Linux产品安装包,在产品安
2023-09-06
技术文章 > Java
git fsmonitor--daemon 占用目录,导致无法修改

git fsmonitor--daemon 占用目录,导致无法修改

当我通过命令 git clone 目录然后导入 IDE 操作时,由于想修改目录名,就退了 IDE,再修改目录名,系统提示我文件夹正在使用: 通过 LockHunter (或者PowerToys) 发现占用该目录的进程,右键打开。 打开后如下所示 PowerToys查询的结果 为什么会有大量 git 占用目录呢?打开任务管理器发现好多: 右键增加命令行列后如上图所示,大量
2023-05-22
技术文章 > 解决问题
多种工具协同创建一个基于CentOS,包含最新版本sysstat的镜像

多种工具协同创建一个基于CentOS,包含最新版本sysstat的镜像

服务器上部署了sysstat,通过sar可以保留系统监控记录,从服务器下载数据在别处分析时,不是很方便,因此考虑构建一个方便使用的Docker镜像辅助工作。 sysstat: https://github.com/sysstat/sysstat 1. Bing AI 创建 Dockerfile直接让 AI 帮忙写 Dockerfile 内容复制如下: 123456789101112131415#
2023-04-28
技术文章 > 运维 > Docker
WSL2 对外暴露端口

WSL2 对外暴露端口

参考文档 一口气搞定 WSL2 的网络问题 从局域网 (LAN) 访问 WSL 2 发行版 通过本地网络连接到 WSL2 服务器 按照下面的操作步骤进行操作。 1. powershell 支持 sudohttps://github.com/gerardog/gsudo 可以直接下载msi安装:https://github.com/gerardog/gsudo/releases 2. pow
2023-04-25
技术文章 > 运维
MyBatis游标Cursor在Oracle数据库上的测试

MyBatis游标Cursor在Oracle数据库上的测试

测试数据的列更多,内容更多,和 MyBatis游标Cursor的正确用法和百万数据传输的内存测试 不同,占用内存没有可比性。 1.1. 不配置内容,查询全部,99万数据 内存缓慢增长,12分钟都没有查询完。 1.2. 初始2G内存,最大4G内存,fetchSize=10000当不设置fetchSize时,Oracle默认10,内存增长和1一样缓慢,查看源码发现Oracle默认为10:
2023-03-27
技术文章 > MyBatis
MyBatis游标Cursor的正确用法和百万数据传输的内存测试

MyBatis游标Cursor的正确用法和百万数据传输的内存测试

很早以前为了处理大量数据想过使用Cursor,当时发现没有效果,就没有继续深入。这次为了搞清楚 Cursor 是否真的有用,找些资料和源码发现是有效果的,只是缺了必要的配置。 准备测试数据创建表: 123456CREATE TABLE test_table ( id INT PRIMARY KEY, name VARCHAR(20), age INT, address VARCHAR(20
2023-03-25
技术文章 > MyBatis
MySQL JDBC 中 tinyint(1) 处理为Boolean 的代码逻辑

MySQL JDBC 中 tinyint(1) 处理为Boolean 的代码逻辑

MySQL JDBC 中 tinyint(1) 类型,在查询时默认会被处理为 Boolean 类型。 参数配置官方文档中提供了参数配置: 上图标记的两个参数可以控制如何处理 tinyint(1) 类型和 BIT 类型。 tinyInt1isBit 默认 true,因此会把 tinyint(1) 类型转换为 BIT 类型。 转换的逻辑在 com.mysql.jdbc.Field 类中的构造方法,
2023-02-16
技术文章 > MySQL
2022 年博客总结

2022 年博客总结

时间过的飞快,孩子也快4岁了,1号带孩子去玩雪,发生了一件有趣的事,发个视频。 https://live.csdn.net/v/267430 我拉着闺女,闺女拉着儿子,忽略了力的作用,我以为只有我在使劲,实际上闺女需要需要更大的力拉着儿子。走着走着,突然一轻,然后闺女被拽了出去,摔个屁股墩,儿子直接滑了下去。闺女爬回圈中被我带了上去。 2022 年发布的文章一共发布了 30 篇博客,平均一个月
2023-01-04
总结

事务性发件箱模式:解决数据库事务和消息的一致性

参考:https://microservices.io/patterns/data/transactional-outbox.html 这是2022年10月28日创建的草稿,最终的文字内容和代码通过 ChatGPT 生成。 事务性发件箱模式是一种解决数据库事务和消息的一致性问题的方法。它的基本思想是,将消息的发送操作与数据库的更新操作绑定在一起,保证这两个操作是原子性的,要么都成功,要么都失败
2022-12-07
技术文章 > Java
logback 集成 logstash

logback 集成 logstash

logback 集成 logstash 相关环境参考: Java 输出 JSON 日志 1. 添加依赖12345<dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> &
2022-11-26
技术文章 > 运维

实时输出Java8 HashMap数据结构

看过 Java 8 HashMap 源码的知道底层数据结构是数组、链表和红黑树实现的,从Debug调试或者序列化输出的都是K,V值,没法直观的看到上述的数据结构,为了直观的看到数据结构存储方面的变化,本文通过动图演示HashMap的结构变化。 为了简单看出链表到红黑树的变化,定义一个方便控制的key来演示效果。 1234567891011121314151617181920212223242526
2022-11-23
技术文章 > Java
WSL2 中 docker volume 的位置

WSL2 中 docker volume 的位置

想通过file/tail方式收集Docker日志,在linux没找到docker的容器目录,docker inpsect显示的位置也不存在,搜索了一些资料也不对,最后在 WSL2 where is docker volume location? 找到了答案。 按照 nvRelax 的回复,找到了该位置。 第一步在 windows CMD 中执行下面的命令: 1net use h: \
2022-11-09
技术文章 > 运维 > Docker

Java 输出 JSON 日志

为了在服务中使用 JSON 格式的日志,搭建 fluentd 和 logstash 测试环境,整理相关配置的详细资料。 1. fluentd 测试环境文档:https://docs.fluentd.org/v/0.12/articles/docker-logging-efk-compose docker compose: 12345678910111213141516171819202122232
2022-11-08
技术文章 > Java

Java Process:另一个程序正在使用此文件,进程无法访问

最近处理奇怪的问题时,犯了个低级错误,浪费了不少时间,甚至都看了 jdk 底层的 c 代码。 下面这段测试代码是在 Windows 环境运行的(Mac和linux换成 /bin/sh,-c 后没有问题),你能发现错误在哪里吗? 123456789101112131415161718192021222324@Testpublic void test() throws Exception {
2022-09-28
技术文章 > Java
1234

搜索

Hexo Fluid
总访问量 次 总访客数 人