- 博客(57)
- 收藏
- 关注
原创 MySQL8的索引跳跃扫描原理
索引跳跃扫描(Index Skip Scan)是 MySQL 8.0.13 引入的一种优化技术,允许在某些情况下跳过联合索引的最左前缀字段,仍然可以利用联合索引进行查询。7. 如何查看是否使用了索引跳跃扫描?在传统的 B-Tree 索引中,查询条件必须遵循“最左前缀匹配原则”,即查询条件必须包含联合索引的第一个字段,才能有效利用索引。• 联合索引的非最左前缀字段查询:查询条件中不包含联合索引的第一个字段,但包含后续字段。• 查询字段必须是索引中的列:查询的字段必须是联合索引中的列,否则无法利用索引。
2025-04-10 18:27:51
242
原创 truncate,drop,delete分析
• DELETE :用于删除表中满足特定条件的数据,可恢复,逐行删除,性能较低,触发触发器。• TRUNCATE :用于快速清空表中的所有数据,保留表结构,性能高效,不可恢复。• 如果需要清空表中的所有数据,但保留表结构,使用 TRUNCATE。• DROP :用于删除整个表及其所有数据和结构,性能高效,不可恢复。• 如果需要删除表中满足特定条件的数据,使用 DELETE。• 如果需要删除整个表及其所有数据和结构,使用 DROP。**是否保留表结构**
2025-04-10 17:59:16
255
原创 深度分页及优化建议
深度分页是指在分页查询中,当用户请求非常靠后的页面时,数据库需要处理大量数据,导致查询性能显著下降的情况。例如,一个查询结果有 100 万条记录,而用户要查询第 999 页(每页 10 条记录),这就需要跳过前面 9980 条记录,这种场景就属于深度分页。```sql```这种方法的前提是主键必须自增,且前端需要传递上一页的最大主键`maxId`。此方法不支持随机跳页,只能上下翻页。
2025-04-10 17:34:44
302
原创 cookie和session哪个生成的时间早
在实际应用中,Session 的创建先于 Cookie 的生成。服务器先创建 Session 并生成 Session ID,然后通过 Cookie 将 Session ID 发送给客户端,客户端存储 Cookie 并在后续请求中携带它,以便服务器识别用户的会话状态。
2025-04-10 15:23:54
250
原创 Java面试题总结
因此,除非是在进行非常精细的性能调优或者了解具体的调度行为对应用有直接影响的情况下,一般不会频繁使用 sleep(0) 或 yield()。并发:某个时间段内处理多个任务的思想,这些任务不是真正的同一时刻的任务执行,而是通过cpu的快速切换,使得宏观(逻辑上)看起来是同时执行的。yield是直接让此线程再次进入可运行状态,参与与其他同优先级的线程的cpu资源竞争,不需要设置参数,此方法属于提示性方法,无强制性。,让其他等待的任务有机会执行,在多线程,多任务环境可以提高程序效率。
2025-04-02 22:01:58
473
原创 为什么现在项目的实体类属性用Integer而不用int
Integer是包装类可以存储null值,数据库中的整数字段可能允许null值,如果实体类使用int,int会被初始化为0,会无法区分无值和值为0的情况。,不能直接存储基本数据类型,如果实体类的属性是int,在存入集合时需要自动进行装箱为Integer,增加不必要的性能开支。:框架要求实体类的属性是引用类型,可以更好的处理数据库中null值,使用Integer可以正确的进行映射。:可根据条件进行某个字段的赋值,使用int,即使不赋值,也会有一个默认0,可能不符合业务要求。:泛型只支持引用类型。
2025-04-01 12:20:54
117
原创 分布式服务的熔断和降级
防止故障扩散的一种策略,服务出现故障时(即一个服务在某个时间段内被请求的失败次数达到一定的比例)调用方会暂停对该服务的继续调用,是对微服务雪崩的一种链路保护机制。:并发高峰期,由于服务器的资源有限,为保证核心功能的可用性,对某些非核心的功能进行进行关闭或者简化处理,保证核心功能的可用性。2,管理的·目标层次的不一样,熔断属于框架层次处理,降级属于业务层次。1,触发原因不一样,熔断属于某个服务,降级是基于对整体的考虑。熔断和降级是分布式系统中的保障稳定和可靠性的重要机制。:请求超过某个阈值的拒绝策略。
2025-03-26 22:03:58
168
原创 spring和maven
提供的功能有:一依赖注入、面向切面编程、事务管理、测试等Spring框架的核心是IoC容器,负责管理应用程序对象和生命周期。在进行项目开发时兼顾项目管理的工作(添加依赖包,编译源码,单元测试,项目部署)等操作就称为项目构建(让程序员专注于编写代码)1,Maven是Apache软件基金会组织维护的一款自动化构建工具,专注于Java平台的项目构建和依赖管理。程序员构建基于spring的应用程序时,通常会使用Maven来管理项目依赖和构建流程。他们经常一起使用来构建和管理企业级应用。编译-测试-打包-部署。
2025-03-24 22:42:50
818
原创 MySQL/索引
3,全文索引:可在字符列上创建(TEXT,CHAR,VERCHAR)支持MyISAM和InnoDB,自然语言搜索。:基于哈希表实现,只支持等值查询 ,只有Memory存储引擎和NDB Cluster存储引擎显示支持哈希索引。唯一性:一个表只能有一个聚集索引,因为数据行按照一个特定的顺序进行物理存储。主键与聚集索引:通常聚集索引就是表的主键 在InnoDB引擎中。决定表中数据的物理存储顺序,索引结构和数据存储在一起。物理排序:数据行按照聚集索引键值的顺序存储在磁盘。
2025-03-11 16:06:16
285
原创 this和super的使用场景
3,调用当前类的构造器方法: 在同一个类中,一个构造器内调用另一个构造器方法。2,调用当前类的方法,如果子类重写了父类的方法,在子类中可以通过。1,引用当类的实例变量:局部变量和实例变量同名时,可用来区分。调用当前类版本的方法。不过这种情况较少见,因为直接调用即可。1,引用父类实例变量 :在子父类中有相同实例变量时。都不能在静态方法如main中使用。4,返回当前对象实例:用于链式调用。3,调用父类构造函数。
2025-03-07 17:11:28
168
原创 Spring事务的传播级别
7,NESTED : 没有事务,创建一个新事务,有事务则嵌套在这个事务中运行(嵌套事务)类似REQUIRED;1,REQUIRED :如果当前存在事务,则加入事务,不存在则新创建一个事务。4,REQUIRES_NEW : 创建一个新事务,如果当前事务存在则暂停(挂起)当前事务。5,NOT_SUPPORTED :只能以非事务方式运行,如果存在事务,则挂起事务。2,SUPPORTS : 如果当前存在事务则加入事务,不存在则以非事务方式运行。3,MANDATORY :强制事务执行,事务不存在抛异常。
2025-03-07 14:19:38
100
原创 Freemarker是一款 模板引擎
SpringBoot整合FreeMarker生成word表格文件(使用FTL模板)Freemarker基本指令语法和集合指令语法
2024-12-27 10:40:51
99
原创 安装postgreSQL后登录报错
C:/Program Files/PostgreSQL/17/data/pg_hba.conf 文件 最后几行。框中的地方在添加本机ip的时候可能删除了一部分字段,所以报错了,加上就好了。2,添加本机ip 就可以使用本机ip进行数据库连接了。报错意思已经很明确了。
2024-11-28 14:07:35
200
原创 在线解析工具链接
字数统计,字符统计,字节统计,字数计算,统计字数,统计字节数,统计字符数,统计word字数,在线字数统计,在线查字数,计算字数,字数统计工具,支持手机移动端查询多少字数,英文:Calculate the number of words,Count the number of words.json解析视图查看器工具:提供json解析工具,json视图查看器,json在线视图,视图支持json解析,json格式化校验,可控制缩进量的Json在线解析工具,json视图工具大全。
2024-11-22 14:53:00
511
原创 svn拉下来的项目启动报错
E:Application.java:5:46 java: 程序包org.springframework.boot.autoconfigure不存在 Application.java:6:46 java: 程序包org.springframework.context.annotation不存在 Application.java:12:2 java: 找不到符号 符号: 类 SpringBootApplication。设置好之后,File -> Invalidate Caches…
2024-08-20 15:41:11
216
原创 mysql索引相关命令
命令来查看表上的索引信息。这可以帮助您确认索引是否存在。如果您想要保留索引以备将来重建,您可以使用。在MySQL中,您可以使用。为您的MySQL用户名,
2024-08-20 11:50:03
259
原创 mysql创建quartz定时任务相关表sql
-存储Cron触发器的cron表达式和其他信息。--接下来,创建索引以提高性能;--存储简单触发器的额外属性。--存储复杂触发器的简单属性。--存储触发器的blob数据。--存储已触发的触发器信息。--存储调度器的状态信息。--存储暂停的触发器组。--存储触发器信息。
2024-08-20 11:26:26
764
原创 plsql 断网恢复后连接超时
是 Oracle 提供的一个命令行工具,用于管理和控制监听器。你可以使用它来启动、停止监听器以及检查其状态。3,要确定你的 TNS 服务名,你需要查看 Oracle 客户端配置文件。是你所使用的 TNS 服务名。
2024-07-30 11:10:00
413
原创 @RequestParam和@PathVariable 处理 HTTP 请求参数的注解
可解析前端get请求路径后以问号拼接的参数,查询参数是 URL 后面的问号 (// 在这里,name 和 age 将从 URL 的查询参数中获取。将 URL 路径中的变量绑定到控制器方法的参数上。可以设置参数是否是必需的(使用。) 后跟的一系列键值对,
2024-07-24 09:17:42
675
原创 String 类 判断null或者空字符串
Apache Commons Lang 库的一部分,它提供了一个方便的方式来检查集合(如 List, Set 或 Map)是否为空或为。是 Apache Commons Lang 库中的一个实用方法,用于检查一个字符串是否为。方法是在 Java 7 中引入的。) 或仅包含空白字符(如空格、制表符、换行符等)检查一个字符串是否为空或仅包含空白字符。{ // 字符串是null或空字符串 }类中,用于检查给定的对象是否为。// 字符串是null或空字符串。类引入了一个新的方法。
2024-07-23 15:57:03
273
原创 @JsonFormat注解的作用
将这些Java对象转换为JSON字符串(序列化)或从JSON字符串转换回Java对象(反序列化)时改变日期的格式。- 该注解仅在使用如Jackson这样的JSON处理库时生效,而不会影响数据库操作本身。- 如果你期望客户端能够发送符合特定格式的日期,你需要确保客户端知道并遵循该格式。- 在反序列化时,提供的JSON日期字符串必须与。指定的模式兼容,否则可能抛出异常。
2024-07-19 10:00:35
374
原创 spring boot 调用一个.htm接口
遇到springboot调用一个老接口..do形式的。进行post请求body中传参,.do接口使用HttpServletRequest request的request.getParameter("telephone");sf.append("http://请求的路径");//将传递的参数这样设置。
2024-02-29 09:27:03
376
1
原创 Mybatis报错 target is null for method size
真是神奇的,感觉和版本有关系,这样的方式之前完全没啥问题 projects!= null and projects.size()>0,现在在这里 却必须要去掉projects.size()>0大小判断,
2024-02-05 13:07:59
1190
原创 Servlet实现Excel文件模板下载
servlet中使用getServletContext.getRealPath()这个方法受到war 和non-war的影响,以及不同app server实现的影响,所以会得到null,需要换获取绝对路径;throw new NullPointerException("模板不存在");String fileName = "问题选项导入模板.xlsx";// 输出缓冲区的内容到浏览器,实现文件下载。// 设置响应头,让浏览器下载文件。// 文件放到输入流。
2024-02-01 17:07:45
543
原创 数据库相关
查询当前数据库所处的语言环境方法 作用 System.getenv() 获得所有环境变量 System.getenv(String name) 获得名为name的属性的值。
2024-01-30 10:54:20
127
原创 日常快捷键使用
3.查询方法被引用的位置,或者右键 find Useges。使用快捷键 Alt+Insert,选择toString。grep "要查询的字符" /path/to/logfile.txt。home 键 :移动到行首(配合shift键可选中到当前行首)Ctrl+Alt+M 可以快速地抽取方法。查询文件中的指定字符的所有行。end 键:移动到行尾。
2024-01-25 18:05:13
408
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人