【Mysql】索引优化实战:从 320ms 到 130ms 的慢 SQL 改造

MuleSoft+LangChain双引擎:企业级AI编排落地实战指南 AI编排(AI Orchestration)是企业在CRM、ERP等复杂系统中安全、稳定、合规集成大模型的核心工程范式。它超越单点调用,聚焦数据流与控制流的物理隔离、敏感字段动态脱敏、LLM输出一致性保障等关键能力。其技术本质是将大语言模型作为可编排的智能服务单元,通过集成平台实现权限治理、审计追踪与故障域隔离。典型应用场景包括销售智能助手、预测性维护报告生成、核保知识问答等需强确定性、高合规要求的业务闭环。本文基于金融、制造、保险行业真实落地经验,详解MuleSoft与LangChain协同构建企业级AI 阅读详情

前言:

我们项目中,经常遇到需要索引优化的地方,即我们常见的慢查询,那么从一个实际的案例出来,分析慢查询中会经过哪些步骤,哪些环节是我们需要注意的,同时,在整个链路分析中,哪些部分是我们可以提炼出来,面试的经验值@!

注:xxxx替换项目名,不影响整体阅读


【S - 情境】

在xxxx项目的「学习报告生成」核心接口中,存在一条高频慢 SQL:关联「用户学习记录表(t_learning_record,3000 万 + 数据)、用户表(t_user,500 万 + 数据)、课程表(t_course,20 万 + 数据)」3 张表,查询用户 7 天内的学习轨迹并按学习时间排序,用于生成个性化学习报告。

初始慢 SQL(简化后) :

sql

SELECT lr.user_id, lr.learn_time, lr.mastery_rate, u.nickname, c.course_name FROM t_learning_record lr LEFT JOIN t_user u ON lr.user_id = u.user_id LEFT JOIN t_course c ON lr.course_id = c.course_id WHERE lr.learn_time BETWEEN '2024-01-01 00:00:00' AND '2024-01-07 23:59:59' AND u.user_type = 1 -- 仅查询普通用户 ORDER BY lr.learn_time DESC LIMIT 100;

初始问题:

  • 接口响应时间 320ms,其中该 SQL 执行耗时占比 85%,日均调用 120 万次,导致数据库主库 CPU 峰值达 75%;
  • 慢查询日志显示,SQL 触发全表扫描,且存在「Using temporary + Using filesort」,排序和临时表开销巨大;
  • 已有索引:t_learning_record 仅建了idx_learn_time(单字段索引),t_user 仅建了PRIMARY KEY (user_id)。

【T - 任务】

  1. 通过执行计划分析,精准定位慢 SQL 的性能瓶颈(索引缺失、索引失效、排序优化不足);
  2. 设计合理的复合索引,明确字段顺序,覆盖 WHERE、JOIN、ORDER BY 场景,避免全表扫描和文件排序;
  3. 处理潜在的索引失效场景,确保优化后的索引稳定生效;
  4. 优化后 SQL 执行耗时降至 150ms 内,支撑高并发场景。

【A - 行动】

核心围绕「执行计划分析→复合索引设计→索引失效处理」三步展开,结合 MySQL 执行计划原理和实战落地细节,逐一拆解优化逻辑。

一、执行计划分析:定位慢 SQL 核心瓶颈

优化的前提是「知其然且知其所以然」,通过MySQL Explain 工具分析初始 SQL 的执行计划,精准锁定问题所在。

1. 执行计划获取与关键字段解读

执行EXPLAIN + 慢SQL,核心输出结果如下(重点关注 5 个字段):

表名

type

possible_keys

key

rows

Extra

t_learning_record(lr)

ALL

idx_learn_time

NULL

456892

Using where; Using temporary; Using filesort

t_user(u)

eq_ref

PRIMARY

PRIMARY

1

Using where

t_course(c)

eq_ref

PRIMARY

PRIMARY

1

关键字段解读(瓶颈定位):

  • type=ALL(lr 表) :t_learning_record 表触发全表扫描,这是最核心的性能瓶颈(type 字段从好到差:const→eq_ref→range→ref→ALL);
  • key=NULL(lr 表) :虽有单字段索引idx_learn_time,但未被使用,索引失效;
  • rows=456892(lr 表) :预估扫描 45 万 + 行数据,实际扫描量超 400 万行,数据处理成本极高;
  • Extra=Using temporary; Using filesort:因 ORDER BY 字段(lr.learn_time)未走索引,需创建临时表存储联表结果,再进行文件排序,这两个操作是 SQL 耗时的主要来源(占比 60%+);
  • t_user 和 t_course 表:type=eq_ref(通过主键关联),无性能瓶颈,无需优化。

2. 进一步验证:Explain Analyze(真实执行情况)

通过EXPLAIN ANALYZE(MySQL 8.0+)获取真实执行数据,验证瓶颈:

sql

-> Limit: 100 row(s) (actual time=318.2..318.2 rows=100 loops=1) -> Sort: lr.learn_time DESC (actual time=318.2..318.2 rows=100 loops=1) -> Hash Join (left outer) (actual time=280.5..315.7 rows=456892 loops=1) -> Hash Join (left outer) (actual time=250.3..285.1 rows=456892 loops=1) -> Table scan on lr (actual time=0.02..150.2 rows=400000 loops=1) -- 真实全表扫描40万行 -> Hash (actual time=250.2..250.2 rows=100000 loops=1) -> Table scan on u (actual time=0.01..10.3 rows=100000 loops=1) -> Hash (actual time=30.1..30.1 rows=20000 loops=1) -> Table scan on c (actual time=0.003..8.5 rows=20000 loops=1)

结论:全表扫描(lr 表)+ 临时表 + 文件排序,是 SQL 耗时 320ms 的核心原因,需通过索引优化解决这两个问题。

二、复合索引设计:字段顺序决定优化效果

针对 lr 表的查询场景(WHERE+JOIN+ORDER BY),设计复合索引是核心解决方案。复合索引的字段顺序直接影响索引利用率,需遵循「最左前缀匹配、过滤性优先、排序字段后置」三大原则。

1. 明确 SQL 的核心字段角色

先拆分 SQL 中 lr 表的字段用途,为索引设计提供依据:

  • JOIN 字段:user_id(与 t_user 表关联);
  • WHERE 条件字段:learn_time(范围条件:BETWEEN);
  • ORDER BY 字段:learn_time(DESC 排序);
  • 查询字段:mastery_rate(仅查询,无过滤 / 排序)。

2. 复合索引字段顺序决策逻辑

复合索引的核心设计原则:高频过滤字段→JOIN 字段→排序字段→查询字段,结合本案例的优先级排序:

  1. 第一步:优先选择过滤性强的 WHERE 字段learn_time 是范围条件(BETWEEN),但它是筛选数据的核心(仅保留 7 天内的数据,过滤率达 99%+),且是 ORDER BY 字段,需放在索引前列;
  2. 第二步:加入 JOIN 字段 user_id 是与 t_user 表的关联字段,且关联后 u.user_type=1 会进一步过滤数据,放在 learn_time 之后,符合最左前缀匹配;
  3. 第三步:包含排序字段(已在第一步覆盖) 因 ORDER BY 字段就是 learn_time,索引中已包含,无需重复添加;
  4. 第四步:覆盖查询字段(可选,实现索引覆盖) 加入 mastery_rate 字段,使索引包含所有查询字段(learn_time+user_id+mastery_rate),避免「回表查询」(从索引找到主键后,再去主键索引查数据)。

3. 最终复合索引:idx_learn_time_userid_mastery

创建索引 SQL:

sql

CREATE INDEX idx_learn_time_userid_mastery ON t_learning_record (learn_time DESC, user_id, mastery_rate);

索引设计合理性验证:

  • 满足最左前缀匹配:WHERE 条件的 learn_time 范围查询触发索引,后续的 user_id 关联字段可复用索引;
  • 覆盖排序:learn_time DESC 在索引中已排序,避免文件排序;
  • 索引覆盖:查询字段(learn_time、user_id、mastery_rate)均在索引中,无需回表,进一步提升性能。

三、索引失效处理:规避实战中的 “隐形坑”

创建复合索引后,需验证是否生效,同时处理潜在的索引失效场景。本案例中初期遇到 2 个核心失效问题,通过针对性优化解决。

1. 失效场景 1:索引字段被函数操作(初始踩坑)

问题现象:

创建索引后,执行 SQL 仍触发全表扫描,执行计划显示 key=NULL,索引未生效。

排查原因:

原始 SQL 中 learn_time 字段存在函数操作(开发初期为了统一时间格式,添加了 DATE () 函数):

sql

-- 问题SQL(隐藏函数操作) WHERE DATE(lr.learn_time) BETWEEN '2024-01-01' AND '2024-01-07'

MySQL 中,索引字段被函数 / 表达式操作后,会导致索引失效,优化器无法利用索引的有序性进行范围查询。

解决方案:

修改 SQL,避免对索引字段进行函数操作,将函数移到条件值上:

sql

-- 优化后SQL(索引生效) WHERE lr.learn_time BETWEEN STR_TO_DATE('2024-01-01', '%Y-%m-%d') AND STR_TO_DATE('2024-01-07 23:59:59', '%Y-%m-%d %H:%i:%s')

2. 失效场景 2:隐式数据类型转换(潜在风险)

问题风险:

若 lr.user_id(BIGINT 类型)与 u.user_id(VARCHAR 类型)关联,会触发隐式类型转换(BIGINT→VARCHAR),导致 lr 表的 user_id 字段索引失效。

解决方案:

  • 确保关联字段类型一致:本案例中已统一为 BIGINT,无需修改;
  • 若无法统一类型,显式转换非索引字段(避免转换索引字段):
sql

-- 错误:转换索引字段(lr.user_id),导致索引失效 WHERE CAST(lr.user_id AS VARCHAR) = u.user_id -- 正确:转换非索引字段(u.user_id),索引生效 WHERE lr.user_id = CAST(u.user_id AS BIGINT)

3. 失效场景 3:范围条件后的字段无法复用索引(设计规避)

原理:

复合索引中,若某字段使用范围条件(如 BETWEEN、>、<),则该字段右侧的所有字段无法复用索引。

本案例规避:

因 learn_time 是范围字段,且在索引最左侧,右侧的 user_id 仍可复用索引(范围条件仅影响 “右侧字段的索引利用”,不影响左侧);若将 user_id 放在 learn_time 左侧,范围查询后 learn_time 无法复用索引,会导致排序失效。

4. 索引生效验证(执行计划复查)

优化后再次执行EXPLAIN,核心结果如下:

表名

type

possible_keys

key

rows

Extra

t_learning_record(lr)

range

idx_learn_time_userid_mastery

idx_learn_time_userid_mastery

12000

Using index condition; Using where

t_user(u)

eq_ref

PRIMARY

PRIMARY

1

Using where

t_course(c)

eq_ref

PRIMARY

PRIMARY

1

关键优化点:

  • type=range:lr 表使用复合索引进行范围查询,替代全表扫描;
  • key=idx_learn_time_userid_mastery:索引生效;
  • rows=12000:预估扫描 1.2 万行,实际扫描 1.5 万行,较之前的 40 万行大幅减少;
  • Extra=Using index condition:触发「索引条件下推」,在存储引擎层过滤数据,减少回表;无 Using temporary 和 Using filesort,排序和临时表开销消除。

四、优化结果(R - 结果)

  1. 性能大幅提升:SQL 执行耗时从 320ms 降至 130ms(降幅 59%),接口 P99 响应时间从 350ms 降至 120ms;
  2. 数据库压力降低:lr 表的扫描行数从 40 万行降至 1.5 万行,CPU 占用从 75% 降至 30%,主库 QPS 从 880 提升至 2400;
  3. 索引稳定性:线上稳定运行 9 个月,无索引失效情况,慢查询次数从日均 1 万次降至 0。

SWOT 分析:索引优化方案的优劣与落地原则

S - 优势(Strengths)

  1. 精准匹配业务场景:复合索引覆盖 WHERE、JOIN、ORDER BY、查询字段,实现 “一次索引解决所有核心需求”;
  2. 无额外开销:基于 MySQL 原生索引能力,无需引入中间件,仅需创建索引,接入成本低;
  3. 规避失效风险:针对性处理函数操作、隐式转换等失效场景,保证索引长期稳定生效;
  4. 复用性强:索引设计原则可复用于其他类似查询场景(多表联查 + 范围条件 + 排序)。

W - 劣势(Weaknesses)

  1. 索引维护成本:复合索引会增加数据写入(INSERT/UPDATE/DELETE)的开销(约 10%),需平衡读写性能;
  2. 字段顺序敏感:若后续 SQL 查询条件变更(如新增过滤字段),可能导致索引无法复用,需重新调整;
  3. 不适用于复杂联表:若联表字段过多或过滤条件不固定,复合索引设计难度大,效果有限。

O - 机会(Opportunities)

  1. 结合分区表优化:对 t_learning_record 按 learn_time 分区,配合复合索引,进一步减少扫描范围;
  2. 自动化索引推荐:使用阿里云智能 SQL 优化、MySQL 8.0 的sys.schema_unused_indexes等工具,自动识别低效索引和优化方向;
  3. 索引监控与迭代:通过慢查询日志、Performance Schema 监控索引使用率,淘汰无用索引,优化现有索引。

T - 威胁(Threats)

  1. 数据分布变化:若 learn_time 的过滤性下降(如用户集中在某段时间学习),索引效果会减弱;
  2. SQL 写法变更:开发人员修改 SQL 时,可能引入函数操作、隐式转换等,导致索引失效;
  3. MySQL 版本限制:低版本 MySQL(如 5.7 以下)对复合索引的优化支持不足,可能影响索引利用率。

核心踩坑项回顾(大厂面试重点)

  1. 索引字段被函数操作导致失效:初期 SQL 中 DATE (lr.learn_time) 导致索引失效,优化后移除此函数→原则:永远避免对索引字段进行函数 / 表达式操作;
  2. 复合索引字段顺序颠倒:初期尝试idx_userid_learn_time(user_id 在前,learn_time 在后),范围查询后 learn_time 无法复用,排序失效→原则:范围字段优先放在复合索引左侧;
  3. 忽略索引覆盖导致回表:初期未包含 mastery_rate 字段,导致索引查询后需回表,耗时增加→原则:查询字段较少时,尽量实现索引覆盖,避免回表;
  4. 隐式类型转换未察觉:测试环境中关联字段类型一致,线上环境因历史数据导致类型不匹配,触发索引失效→原则:关联字段必须严格统一类型,上线前校验字段类型。

大厂面试核心要点总结

  1. 执行计划分析核心:重点关注 type(扫描方式)、key(索引是否生效)、rows(扫描行数)、Extra(临时表 / 排序 / 索引下推),这 4 个字段能快速定位瓶颈;
  2. 复合索引设计原则:「过滤性优先→JOIN 字段→排序字段→查询字段」,遵循最左前缀匹配,避免范围条件后置;
  3. 索引失效高频场景:函数操作、隐式转换、范围条件后的字段复用、模糊查询(% 开头)、OR 条件未全命中索引,需针对性规避;
  4. 优化落地逻辑:先分析执行计划定位瓶颈→设计贴合场景的索引→验证索引生效→处理失效风险→监控长期稳定性,避免盲目加索引。

Flink Kafka 实战:数据源读取 + 结果写入,含完整代码 本文详细介绍了Kafka环境搭建及Flink集成Kafka的完整流程。首先通过Docker部署Kafka和Zookeeper,包括网络配置、容器启动及验证步骤。然后演示了Kafka主题创建、消息生产和消费的基本操作。接着重点讲解了Flink与Kafka的集成方案:包括Maven依赖配置、Java程序消费Kafka数据的方法,以及Flink作为Source和Sink的完整实现代码。最后提供了验证流程说明,通过Node-RED工具生成测试消息,并由Flink程序处理后回写到Kafka主题。整个过程涵盖了从环境搭 阅读详情

相关推荐

朴素贝叶斯分类器实战:原理、选型与工业级调优指南

朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理的生成式概率分类模型,其核心在于特征条件独立假设与先验-似然联合建模。它不依赖复杂参数拟合,而是通过频率统计高效估计类别后验概率,在小样本、高维稀疏、低延迟场景中展现出独特鲁棒性。技术价值体现在极低资源消耗、毫秒级推理、完全可解释的决策路径,以及对类别不平衡和数据噪声的天然适应力。典型应用场景涵盖文本情感分析、垃圾邮件过滤、用户行为分类及轻量级风控初筛等工程落地任务。本文深入解析多项式型、高斯型与伯努利型三大变体的适用边界,并结合中文分词、拉普拉斯平滑

ateu52935的博客 460

Mysql索引优化实战:从 320ms 到 130ms 的慢 SQL 改造

执行计划分析核心:重点关注 type(扫描方式)、key(索引是否生效)、rows(扫描行数)、Extra(临时表 / 排序 / 索引下推),这 4 个字段能快速定位瓶颈;复合索引设计原则:「过滤性优先→JOIN 字段→排序字段→查询字段」,遵循最左前缀匹配,避免范围条件后置;索引失效高频场景:函数操作、隐式转换、范围条件后的字段复用、模糊查询(% 开头)、OR 条件未全命中索引,需针对性规避;优化落地逻辑。

Java架构师之路的博客 424

QClaw每日4000万Token深度解析:模型调度、计费逻辑与提效实战

AI助手的免费额度并非简单福利,而是基于模型能力切片、动态路由与Token精算的智能服务机制。理解Token本质——它不是字符数,而是模型实际计算复杂度的度量单位——是高效使用AI生产力工具的前提。结合Kimi-K2.5、DeepSeek-V3.2等主流中文大模型的调度策略与真实计费逻辑,可显著提升长文档解析、代码生成、会议纪要等高频办公场景的效能比。本文聚焦QClaw这一典型实践案例,拆解其混合模型网关设计、子额度隔离机制及微信生态深度集成优势,为技术从业者提供可复用的AI成本管控与工作流优化方法论。

culiao6493的博客 655

MySQL覆盖索引原理与性能优化实战

数据库索引是提升查询性能的核心技术,其中B+树结构实现了高效的数据检索。覆盖索引作为一种特殊使用方式,通过避免回表操作显著降低IO消耗,其原理是当查询字段全部包含在索引中时,引擎可直接从索引节点获取数据。在电商、社交等高频查询场景中,合理设计的覆盖索引能使查询速度提升5-10倍,特别是在处理千万级数据表的分页、排序操作时效果尤为明显。本文以MySQL为例,详解如何通过复合索引设计、查询重写等手段实现覆盖索引优化,并分享生产环境中使QPS提升3倍的具体调优经验,涉及分库分表、JSON字段等高级应用场景。

weixin_33423874的博客 292

【信息科学与工程学】【安全领域】第一百四十一篇 SDN+安全服务链场景0001 算法01

编号类型领域子领域问题(要解决什么)问题的数学分析及数值分析及优化分析参数列表及参数的边界范围及极限及常量/数值/数字关联知识和法律法规A1(五元组→匹配树/TCAM映射)转发面 / 接入-边缘SC分流点(MCR/CR/BRAS)引流:按IP五元组+VLAN/QinQ+SRv6隧道信息区分租户/业务,决定送入哪个SRv6 TE Policy/BSID给定海量微流,如何把"租户T+业务B+(sa/da/SP/DP/proto)"快速映射为一条。

weixin_49199313的博客 598

【信息科学与工程学】【数据中心】第三十二篇 云数据中心的计算/存储/网络的核心挑战01

状态方程: SOCk+1​=SOCk​−Qn​ik​Δt​;: 三相电流变换到αβ坐标系: iα​=32​​(ia​−21​ib​−21​ic​), iβ​=32​​(23​​ib​−23​​ic​). 计算瞬时有功功率p和无功功率q,经低通滤波器分离直流分量,反变换得基波电流,差值即为谐波指令。: 节点i的信念 bi​(xi​)=ϕi​(xi​)∏j∈N(i)​mji​(xi​), 消息 mij​(xj​)=∑xi​​ϕi​(xi​)ψij​(xi​,xj​)∏k∈N(i)\j​mki​(xi​).

weixin_49199313的博客 219

MySQL 视图性能优化:5个关键场景下的查询效率实测与避坑指南

本文深入探讨MySQL视图性能优化的5个关键场景,包括简单视图的索引利用陷阱、复杂JOIN视图的执行计划优化、嵌套视图的性能衰减规律等。通过实测数据和避坑指南,帮助开发者提升查询效率,特别针对VIEW的性能问题提供了实用解决方案。

weixin_30267785的博客 393

【管理科学】第三十五篇 企业经营中的管理科学01 权力、风险、运营、物流、人力资源、库存、合同、品牌、业绩、项目

编号类型领域子领域/内容问题问题的数学分析(电磁/信息论/数学物理/数学化学/界面科学/表面科学 + 几何/拓扑/代数/集合论/图论/数论/函数评估/数值估计/概率/统计/向量/张量/矩阵/矢量 + 其他)算法逐步推理思考的数学表达式及实现步骤及时序流程 参数列表及参数的数值范围及数值分析及常量/常数1管理科学问题运营管理生产计划如何分配有限资源生产多种产品以最大化利润?线性代数、凸优化、单纯形法;向量与矩阵目标函数 max c^T x,约束 Ax ≤ b, x ≥ 0。步骤:①标准化引入松弛变量;②构建初

weixin_49199313的博客 247

多维聚合实战:从OLAP立方体到实时下钻的全链路指南

多维聚合是OLAP分析的核心能力,本质是将平面分组升级为数据立方体的切片与钻取。其原理基于维度层级建模、预计算物化与查询重写机制,技术价值在于显著提升高基数组合查询性能、保障跨维度统计一致性,并支持BI工具动态下钻。典型应用场景包括电商销售分析、用户行为漏斗、IoT时序聚合及金融风控多因子交叉分析。本文聚焦Data Cube构建与优化,结合Apache Kylin、Doris、ClickHouse等主流引擎,详解维度建模铁律、预计算策略、查询重写调试及三重结果验证——直击多维聚合中‘结果偏差’与‘查询超时’

weixin_33834075的博客 448

【信息科学与工程学】计算机科学与技术——第七十七篇 系统架构设计02

编号类型模型配方企业资本运作的方法/规则/条件/依据及所有的步骤(​风险处理/异常处理/危机应对关联知识法律法规和裁决依据​​由发起人(通常是知名投资人、投行或产业资本)先设立一个只有现金、无实际业务的特殊目的收购公司(SPAC),通过IPO募集资金并在交易所上市。然后在规定时间内(通常24个月)寻找一家非上市公司进行合并(De-SPAC),使目标公司迅速实现上市,规避传统IPO的复杂流程和不确定性。1.:在开曼或特拉华注册空壳公司,注入少量种子资金。2.

weixin_49199313的博客 315

【信息科学与工程学】计算机科学与自动化——第一百五十五篇 缓存系统设计01 基础知识

CPU:拥有 L1/L2/L3 多级缓存,用于暂存即将执行的指令和频繁访问的数据。GPU:包含显存、纹理缓存、常量缓存、指令缓存等,加速图形渲染和通用计算。RAID 卡 / 存储控制器:自带缓存(通常带电池保护),用于合并写操作、加速读写。打印机:内置内存缓存,用于暂存待打印的页面数据,避免反复从电脑传输。光驱 / 蓝光播放器:内部缓存用于平滑读取光盘数据,防止因寻道延迟导致卡顿。操作系统:页缓存(Page Cache):缓存文件系统数据,减少磁盘 I/O。目录缓存(dentry cache):加速路径查找

weixin_49199313的博客 290

高并发社交关系系统中的读写一致性设计实践

分布式缓存与数据库双写一致是高并发系统的核心挑战,其本质在于协调数据在多个副本间的可见性、时序与语义一致性。传统方案依赖强同步或分布式锁,但易引发性能瓶颈与故障放大;现代工程实践更倾向通过版本控制、异步批量、数据亲和性等机制,在可控不一致窗口内达成最终一致。本文聚焦好友关系等典型社交场景,深入解析基于用户ID路由、CAS版本校验、BatchTask聚合写入与Notification驱动同步的轻量级协调架构,覆盖从请求路由、缓存写入、DB落库到灾备重建的全链路设计,并强调可验证、可回滚、可归因的工程落地原则。

unixboy 432

Matt Pocock Skills — AI 编码代理技能包介绍与使用指南

《Matt Pocock Skills:AI编码代理技能包指南》 摘要: Matt Pocock Skills是一套开源AI编码代理技能包,旨在解决AI辅助开发中的四大痛点:需求理解偏差、token浪费、代码质量差和架构腐化。该技能包包含多种实用工具:/grill-with-docs用于需求对齐,/tdd实现测试驱动开发,/diagnose提供规范化调试流程,/triage管理issue生命周期。核心思想包括:通过拷问式对齐确保需求理解一致,建立共享领域语言提高沟通效率,快速反馈闭环加速开发,以及持续架构维

qq_45859163的博客 2221

Oracle静默安装,含仅软件安装和数据库安装及常见报错处理方法DBT-10317 DBT-05509 [FATAL] ORA-03114

本文详解Oracle 19c单机版静默安装与数据库创建全流程,涵盖目录配置、响应文件编写、安装及建库命令,附常见报错(如DBT-10317、ORA-03114)解析与解决方案,包含删库指令与日志分析,适合内网环境自学实战,免费干货,实用性强。

qq_41474349的博客 180

双足步行机器人的ZMP与CoP检测

静态步行与动态步行   机器人步态分为静态步行和动态步行。当机器人做静态步行运动时,身体的各个部分运动速度很小,机器人的整体稳定性较易控制。静态步行稳定性采用机器人的重心地面投影点(Center of Gravity,简称CoG)作为稳定性标准,这种判定方法适用于运动较为缓慢的情况。如果机器人采用的是一种高速运动的步行方式,则称之为动态步行。当机器人进行动态步行时,其重心的位置和加速度的大小时...

weixin_34112208的博客 5909

Win10下Altera USB-Blaster驱动安装详解:禁用数字签名与排查指南

在嵌入式开发和FPGA调试过程中,驱动安装是工程师绕不开的环节,尤其是当操作系统对驱动签名有严格限制时,硬件往往无法被正常识别。数字签名是系统验证驱动程序来源和完整性的重要机制,Win10出于安全考虑,默认拒绝加载未经签名的驱动,这正是Altera USB-Blaster下载器在设备管理器中显示未知设备或黄色感叹号的根本原因。通过理解设备管理器的排查逻辑,掌握临时禁用驱动强制签名或开启测试模式的方法,配合正确的驱动文件路径选择与手动安装操作,即可解决Quartus无法检测到下载器的问题。这一流程同样适用于许

weixin_29164497的博客 246

Spring 事务详解:@Transactional 如何生效、何时回滚、传播行为怎么选

从订单与库存写入出发,拆解 @Transactional 的代理调用链、默认回滚规则与自调用问题;通过 Spring Boot + H2 的五个验证用例比较 REQUIRED、REQUIRES_NEW、NESTED,并说明数据库事务与 Redis、消息和远程接口的边界。

qq_74421990的博客 311

软件破解逆向安全(一)初识内存地址和偏移

工具:CE 内存:数字->存访在电脑中->内存 实例:如何修改植物大战僵尸阳光 内存搜索最核心:过滤数据 先用CE加载植物大战僵尸,如下图 我们可以看到目前我们的阳光数是50,我们尝试在ce里搜索精确数值,4 byte是int整数的表示。 我们发现有很多数据,尝试收集一个阳光变成75再次搜索: 我们发现就一个了,这时我们可以双击Value随便修改阳光的数值了。 这里我们说一下动态和静态地址 动态地址:临时用于存放数据的地址,黑色。特征:重新启动游戏地..

weixin_43781139的博客 2595

MySQL系统篇,库的操作(三):建库、字符集校验规则与备份恢复

本文系统讲解MySQL数据库创建与管理,聚焦字符集(CHARACTER SET)与校验规则(COLLATE)的核心作用:前者决定字符存储范围,后者影响比较与排序逻辑。通过对比utf8_general_ci(不区分大小写)与utf8_bin(二进制比较)的实测差异,揭示其对查询结果和排序顺序的显著影响。文章还详解CREATE DATABASE语法、IF NOT EXISTS防错机制、命名规范及跨版本兼容性问题,并强调新项目应优先使用utf8mb4以支持完整Unicode。最后提供SHOW CREATE DAT

dasdasfv的博客 288

【深度学习|学习笔记】广义线性模型Generalized linear model(GLM)模型详解,附代码。

【深度学习|学习笔记】广义线性模型Generalized linear model(GLM)模型详解,附代码。

2401_89898861的博客 1876

完整复盘【避雷jd文职某岗位】潍坊青州hhj(据说未来搬到天津),助理实验师岗位,三人进面,面试全部不及格,空头岗位!像这种情况,该单位很多 | 附个人完整备考背诵题目 | 世间一场梦,不会再考这个了

本文以博主本人报考jun dui文职,从报考、备考、考试、查成绩到资格审查、面试,全程亲身经历,给想要报考该内容的朋友们一些小的参考。祝你顺利上岸!完整复盘【避雷jd文职某岗位】潍坊青州hhj(据说未来搬到天津),助理实验师岗位,三人进面,面试全部不及格,空头岗位!像这种情况,该单位很多 | 附个人完整备考背诵题目 | 世间一场梦,不会再考这个了

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 248

Oracle多租户集群PDB异机恢复至单机部署数据库

本文详细演示了将Oracle RAC集群中的PDB(RMAN_PDB)通过RMAN备份恢复至单机CDB的全过程。首先在源库创建测试PDB并插入数据,随后配置RMAN备份路径,备份该PDB及其元数据文件。接着将备份文件传输至单机环境,启动实例并恢复控制文件与数据文件,最后利用DBMS_PDB.EXPOSE_PDB_FROM_RMAN生成PDB描述文件,将其插入新单机CDB中,实现PDB的独立使用。整个流程涵盖数据准备、备份、恢复及插入,完整验证了跨环境PDB迁移的可行性。

qq_57492774的博客 190

红队内网攻防渗透:内网渗透之内网对抗:实战项目&VPC1打靶&PHP-RCE&三层代理路由&防火墙上线&密码喷射&域控提权

上面已经抓取到了密码,但是我们通过拓扑分析看,要想上线win10只能通过正向shell,因为win7的防火墙是开的,win10反向主动连接肯定入站规则拦截,而win10自己没有开防火墙,所以win7主动正向连接就可以上线。win7开启了防火墙,入站规则肯定是会拦截我们的请求的,所以我们需要反向上线,让win7主动来连接我们。这里扫描发现是存在ms17010漏洞的,但是想上线192.168.2.142的话,我们没有路由是上线不了的,这里有两种办法:一种msf直接生成后门,另一种cs移植后门到msf。

HACKONE的博客 910

Mysql数据库基础篇(三):全面掌握数据库与数据表操作:深度剖析底层文件差异与核心管理机制

如果你想彻底改掉某个字段的名字,应该使用 change。实例:将 employee表中的 name列修改为xingming注意:使用 change时,即便不改变数据类型,在指定了新列名后依然需要完整地写一遍它的数据类型与约束定义。

2501_93641778的博客 245

微信小程序转发功能异常报错 由于小程序违规分享功能暂时无法使用的解决办法

小程序右上角转发功能被封,不代表你违规了,而可能是你没认证、没备案!很多功能都是“先合规、后开发”,踩坑就晚了,别像我一样绕了三圈才发现问题。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 2615

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 理解链表算法:从基础操作到高级应用
下一篇: [特殊字符] Kafka 消息不丢失:一次把话说清楚
退休的汤姆
博客等级 码龄7年 1657粉丝 1050原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值