- 博客(81)
- 资源 (11)
- 收藏
- 关注
原创 JdbcTemplate 性能好,但 Hibernate 生产力高。 如何选择?
JdbcTemplate 性能好,但 Hibernate 生产力高。选择哪一个,本质上是。下面,我们对图中的关键判断点进行详细说明。
2026-01-07 20:26:43
511
原创 DBCP和HikariCP数据库连接池详细功能及使用效率对比
DBCP和HikariCP是Java生态中最具代表性的两个连接池,但设计理念和性能表现差异显著。
2026-01-07 20:25:16
361
原创 JdbcTemplate与Hibernate在不同数据量级下的效率详细对比,在什么特定场景下应该使用JdbcTemplate
if (i % 500 == 0 && i > 0) { // 批次大小500。bulk_insert_buffer_size = 128M -- 批量插入缓冲。innodb_buffer_pool_size = 2G -- 缓冲池大小。// 关键:释放内存。:直接循环session.save()或session.update()。:Hibernate配置了批次大小=500,定期flush/clear。// 1. 用Hibernate查询(利用缓存)
2026-01-05 10:00:35
816
原创 Hibernate 框架下批量更新 5k-20k 条数据的场景下,各种添加方法效率对比
针对 Hibernate 框架下批量更新 5k-20k 条数据的场景,几种优化方案,下图展示了不同方案的核心思路与适用场景:下面详细介绍每种方案的具体实现和适用场景:适合:简单字段更新,直接WHERE条件过滤java@Transactionalpublic int batchUpdateByHQL(List<Long> ids, String newStatus) { String hql = "UPDATE YourEntity e SET e.status = :sta
2026-01-05 09:47:59
578
原创 增删改查对于数据库的效率排序
操作通常最快场景通常最慢场景SELECT通过主键/唯一索引查询无索引的全表扫描、多表JOININSERT批量插入、顺序写入单条插入、有大量索引的表UPDATE用主键更新非索引定长字段更新索引键导致索引树分裂、无索引条件更新DELETE用主键删除少量数据无索引条件删除大量数据、有复杂外键约束。
2026-01-05 09:39:55
701
原创 表设计场景-多人共用同一条数据
场景:如果有一个应用场景是,10个人共用了一条数据库中的其中一条数据,如果其中一个人删除了,那么就在这条数据中的其中一个字段把他的id添加进去,直到十个人都删除,再把这条数据删除。
2026-01-05 09:35:59
694
原创 Mysql和PostgreSQL详细对比
WHEN 场景 = '简单Web应用' AND 团队技能 = 'MySQL' THEN '选择MySQL'WHEN 场景 = '复杂数据分析' OR 需要高级SQL功能 THEN '选择PostgreSQL'│ 复杂JOIN查询 │ 12,000 QPS │ 18,000 QPS │。FULLTEXT INDEX ft_name (name) -- 全文索引。
2026-01-03 22:30:16
870
原创 RocketMq:单个消费者订阅多个Topic的实现方式
使用单个消费者实例订阅相关的多个Topic,减少资源消耗在消费逻辑中进行业务分发,根据Topic和Tag执行不同的处理配置统一的异常处理机制,确保所有Topic的消息都能得到正确处理监控所有Topic的消费情况,及时发现消息堆积或消费失败问题通过这种设计,您的RocketMQ消费者服务既能保持代码的简洁性,又能满足复杂的业务需求,实现高效的消息处理架构。
2025-10-29 17:01:14
349
原创 RocketMq:多标签订阅的实现方式
不需要为每个标签创建独立的类。正确的做法是通过的方式在单个消费者实例中订阅多个标签。这种方法不仅简化了代码结构,还显著降低了系统资源消耗,同时保持了良好的业务逻辑分离性。通过标签的合理设计和在消费逻辑中的分发处理,您可以实现既高效又易于维护的消息消费架构。
2025-10-28 16:15:45
325
原创 RocketMq:普通同步消息发送和接收
这段代码展示了RocketMQ消费者的基本实现模式,包括初始化、配置、订阅消息和实现消费逻辑等关键步骤。主要功能是订阅并处理消息队列中的消息。
2025-10-23 18:30:42
220
原创 Hibernate中StatelessSession和普通Session对比
测试表明,未关闭的StatelessSession会使活跃连接数(numActive)不断累积,直到连接池完全耗尽。StatelessSession不维护持久化上下文(Persistence Context),也不跟踪实体状态变化,每次操作都直接同步到数据库。Hibernate文档明确指出,StatelessSession需要开发者手动管理生命周期,这是其与普通Session的核心区别之一。通过显式关闭StatelessSession,可有效避免资源泄漏问题,确保批量操作的高效性和稳定性。
2025-10-10 09:52:18
453
原创 在Hibernate框架中,根据多个ID进行高效查询方法和机制实现
两种方式本质是开发效率与运行时性能的权衡,实际项目中可混合使用(如Criteria构建主体查询,HQL处理特殊片段)这种方式会生成单条SQL语句,适合中等规模的ID集合(通常建议ID数量控制在1000以内)。提供类型安全的查询构建方式,适合动态条件查询。子句SQL,但通过面向 对象的方式避免SQL拼接风险。
2025-10-10 09:26:56
271
原创 Hibernate批量查询方法全面解析
明确查询需求:根据查询复杂度选择合适方法优化关联加载:合理使用JOIN FETCH和@BatchSize控制数据量:务必使用分页查询大数据集配置批量参数:如监控性能:记录查询耗时和记录数,持续优化异常处理:为批量操作添加重试机制结合您之前遇到的批量删除问题,这些批量查询方法可以帮助您更高效地处理大量数据操作,同时保持代码的类型安全和良好的性能表现。
2025-09-30 18:09:25
393
原创 Apache Commons DBCP连接池生产环境配置推荐
核心参数关系式:对比现有配置:注:最终数值需通过压测确定,建议先用JMeter模拟峰值流量验证配置合理性。对于关键业务系统,建议考虑升级到Druid或HikariCP等现代连接池。
2025-09-19 18:23:00
302
原创 H2数据库:(tcp 服务器模式)调优
:通过维护数据行的多个版本实现读写并发,减少锁竞争,适合高并发场景412。:MVCC会占用更多内存存储版本数据,但显著提升并发性能MVCC=TRUE如果是1.4.x版本或者以上可以不用配置默认启用MVCC调优h2数据库(tcp服务器模式)启动命令参数。
2025-09-19 14:57:59
757
原创 H2数据库:高并发写入问题与优化方案
H2数据库在同时发生大量对同一表的添加数据连接时,会面临以下主要问题::H2默认使用表级锁机制,当多个连接同时写入同一表时,会产生严重的锁竞争,导致写入性能急剧下降。在高并发场景下,这种锁竞争可能使系统吞吐量降低80%以上。:作为内存数据库,H2在高并发写入时容易耗尽JVM内存资源,特别是在内存模式下运行时。每个连接和事务都会消耗额外内存,当连接数激增时可能导致OutOfMemoryError。:大量并发写入操作会快速消耗数据库连接池资源,导致后续请求因无法获取连接而阻塞或失败。
2025-09-19 10:39:25
1103
原创 针对tomcat [/usr/lib64:/lib64:/lib:/usr/lib]上找不到基于APR的Apache Tomcat本机库的处理方法
org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 在java.library.path:[/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib]上找不到基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能。ls -ls /usr/bin/apr-1-config (未安装)ls -ls /usr/bin/openssl(已安装)
2025-09-17 17:03:48
1121
原创 Tomcat生产环境调优
1.manager-gui角色核心功能可视化操作界面:提供Web图形化界面(通过/manager路径访问),支持部署/卸载WAR包、启动/停止应用、查看实时日志等操作。典型应用场景:开发调试时快速部署应用,无需重启Tomcat;生产环境需谨慎配置权限。安全风险:默认密码(如示例中的123456)需修改,避免未授权访问。2.其他关键角色对比角色功能描述manager基础管理角色,支持脚本化操作(如通过HTTP请求部署应用)admin-gui高级管理界面,可修改全局配置(如server.xml)
2025-09-09 18:31:59
1291
原创 H2数据库:针对多线程并发问题的系统化解决方案
此问题常见于高并发场景,特别是在使用网络文件系统(NAS)存储数据库文件时更为突出。以上是针对H2数据库多线程并发问题的全面解决方案,建议根据实际业务场景分阶段实施。:H2的MVStore采用文件锁机制确保数据一致性,不支持真正的并发写入。在多线程环境下对H2数据库执行修改操作时,出现文件锁定异常(),根本原因是MVStore引擎的文件锁冲突(:NAS存储的I/O延迟可能导致锁释放不及时。:应用层缺乏有效的并发访问控制机制。:数据库连接未正确关闭导致锁残留。迁移数据库到本地SSD存储。
2025-09-08 17:14:56
329
原创 tomcat下载
注意:32位与64位版本的主要区别在于内存寻址能力(32位最大支持3.5GB,64位支持更高)和系统兼容性。下载方框里的版本,下载都是比较简单的,重点给大家讲解一下这几个版本的不同。若需详细文档,可单独下载。需要嵌入式功能时选择。常规开发或部署推荐。
2025-09-07 11:34:39
391
原创 请求超过Spring线程池的最大线程时,线程池处理机制
此时会再处理5个请求(10-5=5),总处理量为:5(核心) + 5(扩展) = 10个并发执行任务。剩余40个请求(100-5-50-5)将触发CallerRunsPolicy策略,由提交任务的调用线程(如HTTP请求的Tomcat线程)同步执行这些任务,导致调用方阻塞。前5个请求会立即由核心线程(corePoolSize=5)执行,此时活跃线程数达到核心线程数上限。想象餐厅只有10个厨师(线程),50个待做菜的订单(队列)。前10个厨师先做10个菜(5个固定厨师+5个临时工)。注1:什么是拒绝策略。
2025-09-05 17:15:33
993
3
原创 Spring线程池ThreadPoolTaskExecutor详解
通过编程方式动态设置参数,适合需要运行时调整的场景(如根据系统负载动态修改线程数)。静态声明式配置,适用于部署时确定的固定参数,修改需重启应用。)的行为规则完全相同49。差异仅体现在配置方式和扩展灵活性上。方法链式调用,可直接嵌入业务逻辑中进行条件判断。标签注入值,与Spring IOC容器深度集成。
2025-09-04 17:32:58
355
原创 Spring配置线程池
2.打印项目启动具体信息(根据自己不同日志包方法不同,我用的logback,因为每个人不一样所以就不具体说明了,不明白的可以留言问我)表明你的 Spring 项目中。测试线程池是否配置完成。
2025-09-04 15:54:02
253
原创 Elasticsearch中keyword的index类型使用分析
当keyword类型字段的index属性设置为false时,表示该字段不会被构建倒排索引。总结就是keyword加上index=false就是这个字段只能读取,不能搜索。这种字段仅用于存储原始值,不会参与搜索、排序或聚合操作。
2025-09-03 17:15:22
167
原创 Elasticsearch(text和keyword)区别分析
当keyword类型字段的index属性设置为false时,表示该字段不会被构建倒排索引。总结就是keyword加上index=false就是这个字段只能读取,不能搜索。这种字段仅用于存储原始值,不会参与搜索、排序或聚合操作。keyword:精确匹配类型,适用于聚合、排序和过滤。text:全文检索类型,经过分词处理,支持模糊匹配。text比较常用,主要是分词查询等等。
2025-09-03 16:43:16
413
原创 Elasticsearch核心数据类型
浮点数:float(32位)、double(64位)、half_float(16位)、scaled_float(带缩放因子的浮点数)。动态映射控制:通过dynamic参数(true/false/strict)管理新字段的自动创建。整数:byte(8位)、short(16位)、integer(32位)、long(64位)。扁平化类型(flattened):处理动态字段或未知结构,避免映射爆炸。别名(Alias):为字段创建逻辑别名,不影响实际存储。geo_point:存储经纬度坐标。
2025-09-03 14:48:15
294
原创 Elasticsearch常用命令(未完)
对es输入指令可以用很多种方法比如用es的谷歌浏览器插件,亦或者postman,我个人比较喜欢用postman比较简单直接。网上针对es常用命令好多都是写的感觉非常复杂难以理解,所以我还是自己整理了一下相关的常用命令。1.删除指定索引下的所有数据。
2025-09-02 12:00:14
328
原创 elasticsearch中文分词器analysis-ik使用及修改分词器名称
网上很多让你在服务器上下载或者定位到githup上的我觉得都不太好,不够清晰。1.java开发,方便修改源码(比如文件内容加密,或者其他特定的分词处理)*******es版本要严格对应ik版本********上面收录了各个版本es对应的ik分词器版本,特别注意。比如es为6.3.2那么ik也要下载6.3.2。3.配置文件响相对于简单。2.中文分词效果比较好。
2025-09-01 17:27:25
505
原创 H2数据库:数据文件备份(防止异常断电导致的数据库文件无法使用,元数据块损坏等问题)
h2数据库数据文件备份(防止异常断电导致的数据库文件无法使用,元数据块损坏等问题)
2025-07-11 17:22:39
491
java连接sqlserve,db2,及orecal数据库代码和jar包
2018-07-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅