- 博客(1142)
- 资源 (1)
- 收藏
- 关注
转载 2026年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
3244
转载 为什么索引过多优化器会选错索引?
文章摘要:数据库索引过多会扩大优化器的决策空间,而优化器依赖可能失真的统计信息来估算成本。在数据分布不均或频繁更新的场景下,当可选索引较多时,优化器的成本估算误差会被放大,甚至因复杂度高而触发执行计划剪枝,导致选择次优索引。相似索引更会干扰优化器的判断。因此,创建索引应注重质量而非数量,以避免优化器做出错误决策。
2026-08-26 01:19:11
7
转载 redis有哪几种部署模式
1.单机,主从,哨兵,和Cluster集群 2.单机模式部署简单,但是存在单点故障,适合小项目 3.主从模式实现读写分离和数据冗余,但是不具备自动故障转移 4.哨兵模式在主从基础上引入Sentinel,实现自动主从切换,解决了高可用问题 5.Cluster集群模式通过数据分片和多主多从架构,即支持高可用,又支持水平扩展,是目前生产环境的主流选择
2026-08-22 15:46:00
10
转载 分布式锁机制是什么?
1.在分布式环境下,本地锁只能作用于单个jvm,无法跨服务实例互斥,因此需要分布式锁,分布式锁通常基于set key uuid nx px命令实现,配合lua脚本保证原子性,过期时间防止死锁,以及看门狗机制自动续期,从而保证互斥性,防死锁和防误删除,在Redisson中已经提供了成熟的生产级的分布式锁实现
2026-08-22 15:44:41
7
转载 redis分布式缓存是什么?
1.redis分布式缓存是通过多台应用实例共享同一套redis内存数据,来提升系统读写性能和横向扩展能力的一种方案,他将热点数据存储在内存中,减少
2026-08-22 15:43:19
10
转载 mysql优化器是怎么进行代价估算(成本估算)的?
1.基于统计信息,代价模型和一系列工程上的简化假设,对候选执行计划的io和cpu,以及少量其他成本进行估算,选择估算代价最小的执行计划
2026-08-22 15:18:47
5
转载 mysql优化器主要做什么?
SQL优化器通过统计信息和代价模型对查询进行逻辑重写,选择最优的表访问方式、连接顺序与算法,以及排序/分组策略。它会评估不同执行路径的代价,最终生成代价最低的执行计划。这一过程涉及逻辑等价转换、物理算法选择和代价估算,旨在提高查询效率。
2026-08-22 15:08:40
4
转载 什么是mysql的优化器
MySQL优化器是基于统计信息和代价模型的查询优化组件,能够在保持SQL语义不变的前提下,自动选择预估执行成本最低的查询计划。它通过分析表结构、索引、数据分布等统计信息,结合内部代价模型评估不同执行方案,最终确定最优执行路径以提高查询性能,是数据库性能调优的核心模块之一。
2026-08-15 23:39:46
10
转载 什么是缓存击穿
缓存击穿是指热点key突然失效,导致大量请求直接访问数据库的问题。解决方法包括:1)使用分布式锁,确保只有一个请求查询数据库并更新缓存;2)设置热点key永不过期,通过定时任务主动更新缓存数据。这两种方式都能有效减轻数据库压力,提高系统稳定性。
2026-08-09 23:11:35
13
转载 什么是缓存穿透
【摘要】缓存穿透指查询不存在的数据(如id=-1)同时越过缓存和数据库层。解决方案:1)使用布隆过滤器预存合法key,拦截非法请求;2)对未命中的查询,在缓存设置空值(如null)并附加短暂过期时间(如60秒),防止重复穿透数据库。该方法通过双重防护机制有效缓解无效请求对系统的冲击。(98字)
2026-08-09 23:00:36
11
转载 leetcode 56.合并区间
这篇Java代码实现了合并重叠区间的功能。算法首先对区间按起始点排序,然后遍历区间列表,逐个检查当前区间是否能与前一个区间合并(当前区间起始点≤前一个区间结束点)。如果可以合并,则更新前一个区间的结束点为两者中较大的值;否则直接加入结果列表。最终返回不重叠且覆盖所有输入区间的结果数组。示例输入[[4,7],[1,4]]经过合并后输出为[[1,7]]。
2026-08-09 22:14:04
8
转载 线程死锁阻塞,怎么判断出来的,通过什么工具?
摘要 使用Arthas的thread-b命令或jstack工具快速定位线程栈,检查业务代码是否存在多个锁以及加锁顺序不一致的问题。这两种方法能有效帮助排查多线程环境下的锁竞争和死锁情况。
2026-06-15 21:24:31
21
转载 微服务内存溢出,怎么判断出来的,通过什么工具?
排查JVM内存问题的步骤摘要: 检查日志确认是否抛出OOM异常; 查看Kubernetes容器状态,确认是否频繁重启; 通过Prometheus监控堆内存(heap)、老年代(oldgen)、元空间(metaspace)使用趋势,观察是否持续增长,检查FullGC频率和回收效果; 结合Arthas进行实时分析,使用JProfiler分析对象引用关系,最终定位内存泄漏点。 (共99字)
2026-06-14 04:02:28
21
转载 怎么分析慢SQL?
数据库慢SQL监控与优化方案:通过设置慢SQL执行时间阈值(如2秒),实时监控并自动预警至飞书/钉钉群,实现问题快速响应。针对告警SQL,采用EXPLAIN分析执行计划,重点检查三个关键指标:1)索引是否失效(type列出现ALL);2)是否存在全表扫描;3)扫描行数(rows值)是否异常偏高。通过该方案可主动发现性能瓶颈,指导索引优化与SQL重写,有效提升数据库查询效率(150字)
2026-05-31 16:32:22
44
转载 为什么索引不能创建太多?
索引过多带来的负面影响包括:写入性能下降(需维护多棵索引树)、占用额外磁盘空间(影响备份/同步效率)、DDL操作风险增加(可能触发索引重建并锁表),以及优化器选错索引导致查询性能降低。合理控制索引数量对数据库性能至关重要。
2026-05-31 16:14:05
42
转载 Java程序响应很慢,哪几个方面,思路是什么,用什么工具操作?
本文总结了排查系统性能问题的实用方法。对于整体性能下降,建议依次检查CPU使用率(top命令)、线程资源消耗(jstack)、FullGC情况(jstat)、磁盘I/O(iostat)和网络带宽(iftop)。针对单个接口慢的情况,推荐使用监控工具(如pinpoint或arthas)或增加方法耗时日志。SQL性能问题可通过explain分析执行计划,Redis问题则需检查是否存在大key,可通过拆分大key或提升网络带宽解决。这些方法为系统性能优化提供了全面的排查思路。
2026-05-24 18:05:05
41
转载 mysql的解析器是什么?
本文介绍了SQL解析器的核心功能,即将用户输入的SQL语句转换为数据库可执行的内部指令。该系统主要负责对SQL语句进行语法解析和语义分析,实现用户查询到机器指令的转换,为数据库操作提供底层支持。
2026-03-29 00:17:21
37
转载 mysql解析器功能与作用
SQL解析器负责接收并处理客户端发送的SQL语句,主要执行以下关键步骤:首先对SQL进行词法分析和语法分析,生成抽象语法树;随后验证语句的语法正确性;接着检查语义有效性,包括表/列存在性和数据类型匹配;最后与优化器协作生成高效执行计划。整个过程确保了SQL语句的正确性和执行效率。
2026-03-29 00:16:13
37
转载 mysql解析器的工作流程
MySQL语句处理过程主要分为三个阶段:词法分析将SQL分解为关键字、标识符等标记;语法分析根据规则构建语法树并检查结构正确性;语义分析验证语法树的逻辑有效性,包括表、列的存在性和访问权限检查。
2026-03-29 00:13:51
42
转载 mysql的sql处理流程
MySQL查询执行流程:客户端发送SQL查询后,连接器进行权限验证;解析器进行词法语法分析生成解析树;预处理器检查语义和权限;优化器选择最优执行计划;执行器调用存储引擎接口执行操作;存储引擎实际读写数据;最后将结果返回给客户端。这一系列步骤确保了SQL查询的高效执行和数据安全访问。
2026-03-29 00:11:38
35
转载 mysql的关键字,标识符,运算符分别是什么?
SQL语言包含三类基本元素:关键字(如SELECT、FROM、WHERE等)、标识符(如表名、列名等)和运算符(如>、=、+等)。这些元素共同构成了SQL语句的基本结构,用于数据库查询和操作。
2026-03-29 00:09:56
32
转载 什么是联合索引
联合索引(复合索引)是数据库中由多个列组成的索引,用于加速多列查询。其核心特性包括:1)遵循最左匹配原则,查询必须从索引最左列开始且不能跳过中间列;2)当查询字段全部包含在索引中时,可避免回表操作,提升查询效率。这种索引通过优化多条件查询性能,特别适合高频复合查询场景。
2026-02-26 00:42:42
45
转载 Read View核心字段
MySQL事务隔离机制中ReadView的核心参数包括:活跃事务列表(m_ids)、最小活跃事务ID(min_trx_id)、下一个事务ID(max_trx_id)和创建者事务ID(creator_trx_id)。这些参数共同决定了事务的可见性规则,其中m_ids记录未提交事务,min_trx_id和max_trx_id界定事务ID范围,creator_trx_id标识当前事务。这些参数是实现MVCC(多版本并发控制)的关键要素,确保事务隔离性的同时提高并发性能。
2026-02-26 00:41:38
43
转载 事务中的原子性,一致性,隔离性,持久性分别怎么保证?
数据库事务的ACID特性通过不同机制实现:原子性由undolog实现,确保操作可回滚;隔离性通过锁机制和MVCC多版本并发控制实现;持久性由redolog保证数据持久存储;一致性则由原子性、隔离性和持久性共同保障。这些机制协同工作,确保事务处理的可靠性和数据完整性。
2026-02-26 00:36:07
47
转载 你了解分库分表吗?
分库分表是数据库优化的常用手段。分库通过将数据分散到多个数据库来提升并发处理能力;分表则按照用户ID、哈希值或时间等规则将大表拆分为多个结构相同的小表,减少单表数据量,提高查询效率。这两种方法都能有效解决数据量过大导致的性能问题。
2026-02-26 00:34:20
37
转载 什么是垂直分库?
垂直分库是将单一数据库按业务模块拆分为多个独立数据库的技术,通过分离不同业务数据(如用户库、订单库)实现专库专用。该方案能降低单库压力、提升查询效率,并支持业务模块独立扩展。但需注意跨库事务处理复杂性和数据一致性问题,适用于业务边界清晰的中大型系统。
2026-02-25 23:55:44
37
转载 什么是垂直分表?
垂直分表是将一个大表按字段拆分,形成多个结构不同但共享主键的子表。每个子表包含部分字段,减少单表数据量,提升查询效率。适用于包含大量字段且访问频率不均的表,可根据业务需求将高频和低频字段分离存储。这种方法能优化数据库性能,但会增加跨表查询的复杂度。
2026-02-25 23:54:32
30
转载 什么是水平分库?
水平分库是指将同一张表的数据按照特定规则(如范围、哈希、列表等)分散存储到多个结构相同的数据库中。这种方法可以有效提升数据库性能,实现数据横向扩展,适用于大数据量场景。通过规则划分,不同数据分布在不同的库中,减轻单库压力,提高查询效率。
2026-02-25 23:52:49
31
转载 什么是水平分表?
水平分表是将一个大表按照特定规则(如ID范围、时间等)拆分成多个结构相同的小表,分散存储在不同数据库或服务器上。这种方式能有效解决单表数据量过大导致的性能问题,提高查询效率,实现数据的横向扩展。拆分规则需根据业务特点设计,确保数据分布均衡。水平分表后,应用程序需要修改查询逻辑以定位具体分表,增加了系统复杂度,但显著提升了数据库处理能力。
2026-02-25 23:50:51
36
转载 你们项目中用过分库分表吗?
文章摘要:本文介绍了数据库分库分表的具体实践方案。针对不同数据量级采取差异化处理:千万级以下数据保持原样;亿级数据通过ID取模方式拆分成40多个数据库;同时建立历史数据归档机制,将不常用数据单独存储。该方案实现了海量数据的高效管理,既保证了系统性能,又优化了存储资源利用。
2026-02-25 23:49:12
31
转载 如何解决事务的并发问题?
摘要:优化数据库事务性能的关键措施包括:1)设置RR(可重复读)隔离级别保证数据一致性;2)将长事务拆分为短事务,减少锁竞争和资源占用;3)采用乐观锁机制,通过版本号控制实现高效并发。这些方法能有效提升系统吞吐量,降低死锁风险,适用于高并发场景。(98字)
2026-02-25 23:47:45
29
转载 索引创建的原则有那些?
为提高数据库查询性能,建议在频繁用于WHERE、JOIN、ORDER BY和GROUP BY子句的列上创建索引。但需注意避免创建过多索引,以免影响写入性能并增加存储开销。合理的索引策略应平衡查询效率与维护成本。
2026-02-21 23:33:19
39
转载 如何解决mysql超大分页
摘要 本文对比了两种MySQL分页查询优化方法。第一种方法采用子查询,先通过分页查询获取10条记录的ID,再通过IN条件查询完整数据。第二种方法适用于自增主键表,利用ID排序特性,通过记录前一页最后一个ID进行过滤,再结合LIMIT实现高效分页。两种方法都能有效减少分页查询时的性能损耗,但适用场景有所不同。
2026-02-15 14:20:21
59
转载 什么叫覆盖索引
索引覆盖查询是指查询所需的数据可以直接从索引中获取,无需回表查询数据行。这种查询方式利用索引中包含的查询字段,避免了额外的磁盘I/O操作,显著提高了查询性能。当查询的列都包含在索引中时,数据库引擎可以直接使用索引数据返回结果,减少了对主表的访问。合理设计覆盖索引可以优化查询效率,特别是对频繁查询的字段组合建立复合索引效果更佳。这是数据库性能优化中常用且有效的手段之一。
2026-02-15 13:58:05
53
转载 什么是回表查询
回表是指在使用二级索引查询时,如果所需字段不在索引中,需要通过索引中的主键值回到聚集索引中获取完整行数据的过程。这种操作会增加额外的I/O开销,影响查询性能。合理设计索引覆盖查询字段可以避免回表,提高查询效率。
2026-02-15 13:48:44
39
转载 什么是非聚集索引
非聚集索引(二级索引)在B+树中仅存储索引键和主键值,查询完整数据时需要根据主键值回表查询聚集索引。这种设计提高了查询效率,减少了索引存储空间,但增加了二次查询的开销。
2026-02-15 13:44:08
35
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅