自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1074)
  • 资源 (1)
  • 收藏
  • 关注

转载 2025年Java面试题

AOF和RDB是两种redis持久化的机制。重写和重载的区别ssm原理servlet生命周期自定义注解说一说sleep和wait的区别map的遍历方式有几种线程有几种创建方式说一下图论算法int有4个字节mysql的联合索引linux怎么查看端口号netstat -tunpl | grep 端口号fegin怎么暴露出来 fegin有哪些注解hashMap不是线程安全的,ConcurrentHashMap 是线程安全的 redis和mysql的事物有那么一些不一样redis幂等

2022-06-25 09:23:02 2896

转载 什么是数据页?

MySQL采用16KB固定大小的数据页存储多行数据,作为磁盘与内存间数据传输的基本单位。这种标准化设计优化了I/O效率,通过批量读写减少磁盘操作次数,同时便于内存管理和缓存机制实现,有效提升数据库性能。

2025-11-22 20:24:56 5

转载 b+树的层高是怎么计算的?

摘要:通过B+树索引结构分析存储容量:1)非叶子节点每页可存1170个键值-指针对(16KB/14B);2)叶子节点每页存16条1KB记录(16KB/1KB);3)3层结构(2层索引+1层数据)时,总存储量达约2000万条数据(1170×1170×16)。该计算展示了B+树高效支持海量数据查询的存储原理。

2025-11-16 16:34:32 17

转载 mysql中的元数据是什么?

本文概述了数据库中的元数据概念。元数据指描述数据库对象及其属性的数据信息,主要包括表结构、列定义、索引、权限设置、约束条件以及字符集配置等。此外,还涉及视图、存储过程、触发器、函数等程序对象,以及表空间管理和分区方案等存储结构信息。这些元数据共同构成了数据库系统的完整数据字典,为数据库管理和应用开发提供了基础支撑。

2025-11-16 15:45:42 15

转载 记录锁的主要类型

摘要:记录锁主要有排它锁和共享锁两种类型。排它锁(X锁/写锁)用于数据修改时锁定,加锁后其他事务不能读写该行。共享锁(S锁/读锁)用于数据读取时锁定,加锁后其他事务只能读取不能修改该行。这两种锁机制确保了数据库事务的隔离性和数据一致性。

2025-11-09 23:45:24 17

转载 什么是记录锁?

本文主要介绍了MySQL中记录锁的实现机制。记录锁是行锁的一种,用于锁定索引记录防止并发修改。对于聚簇索引,直接锁定叶子节点的完整行数据;对于非聚簇索引(二级索引),会先在索引叶子节点加锁,再通过主键回表到聚簇索引锁定对应的完整行数据,因此需要加两把锁。举例说明:修改主键id=1时只需锁定聚簇索引行数据,而修改name='张三'这样的非聚簇索引时,需要先在name索引加锁,再回表到主键索引加锁。

2025-11-09 23:40:26 21

转载 什么是表锁?

表锁是一种锁定整个表的机制,其优点是开销较小且不易出现死锁情况,操作相对简单。然而,由于锁定范围过大,表锁的并发性能较差,当多个事务需要访问同一表的不同数据时,会出现阻塞现象,影响系统吞吐量。这种锁机制适合对并发要求不高的场景,但对于高并发系统则不够高效。

2025-11-09 23:36:22 16

转载 行锁的优点和缺点?

行级锁的优点是锁定粒度小,仅锁住单行数据,能有效减少锁冲突;缺点是系统开销较大,需要维护大量锁对象,可能影响性能。

2025-11-09 23:27:20 9

转载 什么是行锁?

行锁是数据库锁定机制中的一种实现方式,针对表中的单行或多行数据进行锁定。它包含三种具体类型:记录锁(锁定索引记录)、间隙锁(锁定索引区间)和临键锁(组合锁)。其中,记录锁是最基本的实现方式,通过锁定索引记录来实现行锁功能。行锁概念与具体实现方式存在差异,实际应用中往往通过记录锁来完成行级锁定操作。

2025-11-09 23:22:11 15

转载 什么是临键锁

摘要:临键锁是记录锁和间隙锁的组合,用于RR隔离级别下防止幻读问题。它锁定索引记录本身及之前的间隙,其中间隙锁阻止插入,记录锁阻止修改和删除。例如锁住(5,10]区间时,不允许删除或修改id=10的记录,也不允许插入6-9的新记录。(100字)

2025-11-09 23:18:02 14

转载 什么是间隙锁

摘要:间隙锁锁定的是记录间的范围区间(开区间),不包含边界记录本身。例如锁定id范围(5,10)时,会阻止id为6、7、8、9的新记录插入,但允许对现有记录进行修改或删除操作。这种锁机制主要用于防止幻读问题,确保事务范围内的数据一致性。

2025-11-09 23:16:37 11

转载 为什么rc读取已提交的隔离级别下会出现幻读?

快照读时RC隔离级别会生成新的ReadView并获取最新数据,导致每次查询可能返回不同行数,从而出现幻读现象。该问题源于RC模式下不保证可重复读的特性,允许事务期间看到其他事务提交的新增数据。

2025-11-09 17:21:26 13

转载 编写一条sql,查询英语成绩大于80,前5的学生姓名

本文介绍了MySQL数据库中创建学生表和成绩表的结构,并演示了如何使用窗口函数进行成绩排名。数据库包含学生信息表(xuesheng)和成绩表(xscj),存储了10名学生在数学、英语和语文三科的成绩数据。重点展示了使用dense_rank()窗口函数对英语成绩进行排名查询的SQL语句,该函数实现了同分并列且不跳过名次的功能。查询结果显示了英语成绩高于80分的前5名学生及其排名,其中赵六以96分排名第一,李四和西风同分并列第五。这为学生成绩分析提供了有效的排名统计方法。

2025-11-09 01:20:53 15

转载 使用shell脚本写一个for循环

该脚本是一个简单的bash循环程序,使用for循环输出1到5的数字。每次循环都通过echo命令显示当前数字。最后通过./aa.sh命令执行该脚本,但实际脚本名称应为viaa.sh。脚本功能是展示基本的bash循环语法。

2025-11-08 23:18:33 14

转载 linux下查看磁盘剩余空间命令

df -h。

2025-11-08 23:09:11 14

转载 一条update语句执行过程会先后写入那个日志?

MySQL事务日志机制主要包括四种日志:undolog记录事务前的数据状态用于回滚;redolog(准备阶段)存储事务修改的数据页,确保持久化;binlog记录所有数据变更,用于主从复制;redolog(提交阶段)在事务提交时将修改持久化到磁盘。这些日志共同保障了事务的ACID特性、数据恢复和数据库高可用性。

2025-11-08 23:02:57 16

转载 b+树的缺点?

B树通过节点分裂和合并来维持平衡,虽然插入和删除操作较耗时,但能保证高效查询。其特点在于节点空间利用率不完全饱和,这种设计在存储效率和操作性能之间取得平衡,适用于磁盘存储等场景。

2025-10-26 21:08:44 15

转载 b+树的优点?

B+树通过3-4层固定大小节点减少磁盘IO,提升查询性能。其叶子节点形成双向链表,优化范围查询效率。每次查询从根节点到叶子节点的路径稳定,保证均衡性能。由于数据仅存储在叶子节点,B+树全表扫描比B树更快。这种结构设计兼顾了单点查询和批量操作的效率,是数据库索引的理想选择。

2025-10-26 20:42:42 20

转载 Redis如何实现分布式锁?

Redis实现分布式锁的三种方式:1)使用SETNX命令配合过期时间设置,简单但存在原子性问题;2)采用Redis+Lua脚本保证操作原子性,更可靠;3)通过Redisson中间件自动处理锁机制,具备可重入、续期等高级特性,企业级推荐方案。三种方式在可靠性和复杂度上各有优劣。

2025-10-19 16:01:14 22

转载 redis如何实现持久化,redis持久化机制?

Redis提供RDB和AOF两种持久化机制:RDB通过定时快照保存数据,恢复快但可能丢失近期数据;AOF记录所有写操作命令,安全性高但恢复较慢。实际生产中通常两者配合使用,优先使用AOF文件恢复数据,在保证数据安全的同时兼顾恢复效率。

2025-10-18 20:56:14 21

转载 什么情况下需要使用消息队列/消息队列使用场景?

消息队列在异步场景中具有重要作用,可用于订单超时取消(如30分钟内未支付自动取消)、系统间数据同步以及抢购商品的请求排队。它能有效解耦系统,提高处理效率,确保关键业务逻辑可靠执行。

2025-10-18 18:03:06 26

转载 MySQL的事务特性和隔离级别,可重复读保障?

事务具有ACID特性:原子性、一致性、隔离性、持久性。隔离级别包括读未提交、读已提交、可重复读和串行化。可重复读隔离级别通过MVCC多版本并发控制和ReadView快照读解决不可重复读问题,同时利用间隙锁和临键锁防止幻读现象,确保事务执行过程中数据的一致性。

2025-10-18 00:46:25 21

转载 http状态码,502,504的区别?

后端服务不可访问时返回502错误,而504错误表示后端接口响应超时,超过网关配置的超时限制。502通常由服务崩溃或维护导致,504则多因处理耗时过长或资源不足引发。两者都涉及网关与后端服务的交互问题,但具体原因不同。

2025-10-16 00:30:43 24

转载 什么是2-3树?

2-3树是一种平衡搜索树,包含两种节点类型:2-节点(1个值和2个子树)和3-节点(2个值和3个子树)。在2-节点中,左子树值小于当前节点,右子树值大于当前节点;在3-节点中,子树按值区间分布在左、中、右三个方向。2-3树保持平衡的关键特性是所有叶子节点都在同一层,且叶子节点没有子树。这种结构通过动态调整节点类型来维持树的平衡性。

2025-10-16 00:03:24 24

转载 什么是B树?

B树是一种专为磁盘存储设计的平衡多路搜索树,通过增加每个节点存储的元素数量来降低树的高度,从而减少磁盘I/O操作次数,提高数据访问效率。

2025-10-13 20:43:08 20

转载 什么是多路平衡搜索树?

多路平衡树是一种每个节点可拥有多个子节点的树结构,其核心特点是所有叶子节点必须位于同一层级。不同于二叉树的左右子树结构,多路树的节点分裂与合并操作能动态调整树形,确保插入或删除数据时始终保持平衡状态。这种特性显著提升了数据操作的效率,尤其适用于大规模数据存储与检索场景。

2025-10-13 20:41:44 28

转载 什么是b+树?

B+树是B树的优化版本,专为磁盘存储设计的多路平衡搜索树。其核心优势在于:1)高度控制在3-4层,显著减少磁盘IO次数;2)叶子节点形成双向链表,提升范围查询效率;3)节点大小固定为16KB,与磁盘页对齐;4)查询必须到达叶子节点,保证稳定的IO次数。这些特性使其成为数据库索引的理想数据结构,能高效支持点查询和范围查询操作。

2025-10-13 20:40:12 28

转载 什么是关系型数据库和非关系型数据库?

关系型数据库(如MySQL、Oracle)采用预定义的表结构,通过SQL查询并支持ACID事务;非关系型数据库(如Redis、MongoDB)则灵活存储不同结构的数据,查询使用API或专用语法,事务支持较弱。两类数据库在数据结构和查询方式上有显著差异。

2025-10-13 20:38:16 24

转载 什么是节点分裂和合并?

B树的分裂与合并操作摘要:当节点键数超过最大值时,会分裂为两个节点,中间键提升至父节点;当键数低于最小值时,会与相邻节点合并,父节点分割键下移。对于叶子节点,还需维护双向链表指针。这些操作保证了B树的平衡性和高效性。

2025-10-13 20:26:02 22

转载 b+树的叶子节点,页与页之间为什么是双向链表,而不是单向链表?

摘要:双向链表相比单向链表在B+树索引中更具优势:1)支持双向遍历,降序无需重头开始;2)节点分裂/合并时可快速调整相邻指针;3)范围查询效率更高,定位首节点后即可顺序扫描。这些特性使双向链表在数据库索引操作中表现更优。(99字)

2025-10-13 20:00:17 27

转载 b树和b+树是一个意思吗?

B树(B-tree)和B+树(B+ tree)是两种不同的数据结构。B树也称为B-树(B-tree),其中的“-”不是减号,而是名称的一部分。B+树则是MySQL等数据库中使用的索引结构,虽然名称中包含“B”,但实现上与B树有显著差异。B+树在叶子节点存储所有数据,并通过链表连接叶子节点,而B树在每个节点都可能存储数据。因此在实际应用中需要注意区分这两种树结构。

2025-10-13 19:58:43 22

转载 SQL语句优化手段有哪些?

高效查询数据库的7个技巧:1.避免使用SELECT *,只查询必要字段;2.大数据量查询使用分页;3.用JOIN代替子查询提高性能;4.为常用查询字段创建索引;5.适当冗余常用字段减少关联查询;6.通过执行计划检查索引使用情况;7.合理使用缓存和中间件(如ES)减轻数据库压力。这些方法能显著提升查询效率,优化数据库性能。

2025-10-02 16:52:19 38

转载 MySQL的InnoDB存储引擎的索引是什么数据结构及优势?

InnoDB存储引擎采用B+树索引结构,包括主键索引(聚簇)和二级索引(非聚簇)。B+树具有3-4层的低高度特性,能有效减少磁盘I/O次数。其16KB的节点大小与磁盘页对齐,提升了I/O效率。该结构既支持高效等值查询,也适合范围查询,通过优化树高度显著提升了整体查询性能。

2025-10-02 16:08:08 40

转载 HashMap数据结构,描述put操作的过程

HashMap采用数组+链表+红黑树结构存储数据。put操作流程包括:初始化空表、计算索引位置、处理冲突(链表遍历或红黑树插入)、链表转红黑树(超阈值时)、处理重复键、扩容检查(元素超阈值则2倍扩容并重新散列)。整个过程实现了高效的数据存取和动态扩容机制。

2025-10-02 15:34:07 40

转载 json结构输出所有用户名

该代码演示了如何使用FastJSON解析JSON数据并递归打印树形结构。程序定义了一个包含多级vichildren节点的JSON字符串,通过JSONObject.parseObject()将其转换为JSONObject。print方法递归遍历每个节点,先打印当前节点名称,然后检查其children数组是否为空,若非空则继续递归处理每个子节点。uiltin该方法可以完整打印出树形结构中所有层级节点的名称,适用于在Java中处理嵌套的JSON数据结构。

2025-10-01 00:44:09 58

转载 java选择排序

选择排序通过每次从无序区选出最小元素放到有序区末尾来实现排序。算法步骤包括:初始化无序区为整个数组;在每轮遍历中找出无序区最小元素;将其与无序区首元素交换;重复直至有序。代码示例中,使用嵌套循环实现,外层控制有序区扩展,内层寻找最小元素索引,最后交换位置。时间复杂度为O(n²),空间复杂度O(1),是一种简单直观的原地排序算法。

2025-09-29 23:41:45 29

转载 递归实现反转字符串

该Java程序演示了两种递归方法实现字符串反转。第一种方法通过索引逐个字符递归拼接,从后往前构建新字符串;第二种采用分治法,将字符串分成左右两部分分别递归处理后再拼接。两种方法均以字符串长度作为递归终止条件,展示了递归在字符串处理中的典型应用。程序测试用例为"abcd",输出反转结果为"dcba"。

2025-09-29 23:13:57 35

转载 java插入排序

摘要:插入排序通过构建有序序列,逐个处理未排序元素,将其插入到已排序部分的正确位置。算法步骤包括:从第一个元素开始作为已排序部分,依次取出后续元素,向前扫描已排序序列找到合适位置插入。Java实现中,使用双重循环,外层遍历数组,内层将当前元素与已排序元素比较并移动位置,最后插入到正确位置。该算法时间复杂度为O(n²),适合小规模数据排序。

2025-09-29 23:02:32 24

转载 java二分查找

二分查找是一种在有序数组中快速查找元素的算法。它通过不断将搜索范围折半来实现:首先比较中间元素与目标值,若相等则返回;若中间值小于目标值,则在右半部分继续查找;反之则在左半部分查找。示例代码展示了在Java中实现二分查找的方法,包括处理空数组、设置左右边界、计算中间索引等关键步骤。算法时间复杂度为O(log n),但要求输入数组必须是有序的,否则无法使用该算法。

2025-09-29 00:21:03 27

转载 反转字符串

这段Java代码实现了字符串反转功能。通过将字符串转换为字符数组,使用双指针法(left从数组头部开始,right从尾部开始)交换左右两侧字符,逐步向中间移动指针直至相遇。最终将反转后的字符数组转换回字符串输出。示例输入"abcdefg"将输出反转后的字符串"gfedcba"。

2025-09-28 23:52:46 30

空空如也

空空如也

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

TA关注的人

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