自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

转载 并发事务带来了那些问题?

1.脏读2.不可重复读3.幻读。

2026-02-26 00:40:24 37

转载 脏读,不可重复读,幻读如何解决?

1.解决办法就是设置隔离级别为rr或者串行化。

2026-02-26 00:38:19 46

转载 事务中的隔离性是怎么实现的?

1.通过锁机制和多版本并发控制来实现。

2026-02-26 00:37:15 33

转载 事务中的原子性,一致性,隔离性,持久性分别怎么保证?

数据库事务的ACID特性通过不同机制实现:原子性由undolog实现,确保操作可回滚;隔离性通过锁机制和MVCC多版本并发控制实现;持久性由redolog保证数据持久存储;一致性则由原子性、隔离性和持久性共同保障。这些机制协同工作,确保事务处理的可靠性和数据完整性。

2026-02-26 00:36:07 47

转载 你了解分库分表吗?

分库分表是数据库优化的常用手段。分库通过将数据分散到多个数据库来提升并发处理能力;分表则按照用户ID、哈希值或时间等规则将大表拆分为多个结构相同的小表,减少单表数据量,提高查询效率。这两种方法都能有效解决数据量过大导致的性能问题。

2026-02-26 00:34:20 37

转载 分库分表的拆分策略?

1.拆分策略主要是垂直拆分和水平拆分。

2026-02-25 23:57:46 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关注的人

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