Postgres 19 REPACK:更快、内置的表膨胀清理方案

SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

REPACK 是我在 Postgres 19 中最喜欢的功能。它不是最炫酷的,但如果你在跑生产数据库,它是最重要的那个。Vacuum、autovacuum 和表膨胀一直是 Postgres 用户的痛点。一方面,Postgres 的 MVCC 设计并不新鲜。但在高更新系统中,死行不断产生、后续被释放,vacuum 需要调到合适的级别来维持低膨胀,这仍然是一门不太精确的科学。

一旦膨胀存在,它就摆在那里。你会看到那些未被回收的空间没有被使用。

在 Postgres 19 之前,回收这些空间的选择有:

  • VACUUM FULL:内置,但在整个执行期间持有读写锁。在大表上,这意味着数分钟的停机。
  • dump/restore:切换到一份干净快照的新数据库。
  • pg_repack:第三方扩展,通过外部进程实现在线重建。通常是个好选择,但并非没有注意事项和风险。
  • pg_squeeze:另一个第三方扩展,通过后台 worker 实现在线重建,在生产环境中也很可靠,但同样并非没有注意事项和风险。

Postgres 19 来了:

  • REPACK CONCURRENTLY:在表保持完全可读可写的情况下回收膨胀的表空间,仅在最后短暂持锁,且无需任何扩展。

Postgres 表是如何膨胀的

让我们从头说起。作为资深 Postgres 用户,你可能对膨胀很熟悉,但为了确保大家理解一致……这是 Postgres 的现实之一,是 MVCC 的代价。表随时间累积死元组:当行被更新或删除时,旧版本会保留下来。常规 autovacuum 通常会将那部分空间标记为可复用。对大多数表来说,这就够了。但对于大型、更新密集的表,vacuum 可能跟不上。死行累积形成表膨胀。文件在增长,但由于 VACUUM 只能将空间标记为内部可复用,它不会收缩表或将空间返还给操作系统。要真正回收磁盘空间,你需要重建表。

如何判断是否有膨胀问题?你可以用 pg_stat_user_tables 做快速检查。元组计数是估算值,但这是一个很好的诊断信号。

SELECT
    schemaname,
    relname,
    pg_size_pretty(pg_relation_size(schemaname || '.' || relname)) AS size,
    n_live_tup,
    n_dead_tup,
    CASE WHEN n_live_tup > 0
         THEN round((n_dead_tup::float / n_live_tup::float)::numeric, 4)
    END AS dead_tup_ratio,
    last_autovacuum,
    last_autoanalyze
FROM pg_stat_user_tables
ORDER BY dead_tup_ratio DESC NULLS LAST;

一个粗略的经验法则:

膨胀率低于 50%:通常可以接受。监控它并检查 autovacuum 设置,但不需要紧急处理。

膨胀率高于 50%:你可能在浪费磁盘空间,并因额外的页面读取而付出性能代价。至少值得调查——如果看到慢查询或表大小增长,可能需要处理。

没有单一的膨胀百分比能决定一个表是否需要关注。要考虑浪费的字节数、工作负载、增长速度,以及回收空间是否值得重写。

pg_repack 的工作原理

pg_repack 扩展多年来一直是在线表重建的选择。它的工作方式如下:

  • 外部工具:pg_repack 作为命令行工具运行(pg_repack --table my_table -d mydb),从外部服务器或管理主机执行。你需要在 Postgres 内安装扩展(CREATE EXTENSION pg_repack),并在运行它的机器上安装客户端二进制文件。
  • 基于触发器的变更捕获:它创建一个日志表,并在目标表上安装触发器,以捕获重建期间的所有 INSERT/UPDATE/DELETE 操作。这在操作期间为每次写入增加了触发器开销。
  • 影子表方案:它创建表的新副本,从原表填充数据,重放触发器日志,然后进行短暂的锁换,以及最终的表重命名。

这套方案效果很好,许多生产系统依赖它多年。但安装第三方扩展让一些团队感到不安,外部二进制文件也增加了运维开销。

pg_squeeze 的工作原理

pg_squeeze(来自 CYBERTEC,也是 Postgres 19 REPACK 大部分工作的幕后团队)采用了更现代的方法。它也在生产环境中得到了广泛使用。

  • 逻辑解码:pg_squeeze 使用 Postgres 基于 WAL 的逻辑解码来捕获并发变更。这意味着不在表上安装触发器。这与 PG 19 内置 REPACK (CONCURRENTLY) 现在使用的方法相同。
  • 后台 worker:它完全在数据库内作为后台 worker 进程运行,这意味着与 pg_repack 不同,你不需要外部 CLI 工具。你还可以配置它在膨胀超过阈值时自动运行。
  • 仍然是扩展:很多人更喜欢内置选项,但这仍然需要 wal_level = logical、复制槽、编译和安装扩展,以及将其添加到 shared_preload_libraries。

pg_squeeze 在某种意义上就是 PG 19 REPACK (CONCURRENTLY) 的原型。内置版本继承了逻辑解码方法,但直接集成到服务器中,无需扩展、shared_preload_libraries 或单独的配置表。

REPACK 登场

Postgres 19 将 REPACK 添加为一等 SQL 命令,有三种模式:

-- 基本 repack,类似 VACUUM FULL —— 持有 ACCESS EXCLUSIVE 锁
REPACK my_table;

-- 在线 repack,使用 CONCURRENTLY,就像索引一样
REPACK (CONCURRENTLY) my_table;

-- 在线 repack + 按索引重排序
REPACK (CONCURRENTLY) my_table USING INDEX my_index;

REPACK (CONCURRENTLY)

这是让该功能达到生产就绪的关键。使用 CONCURRENTLY 时,ACCESS EXCLUSIVE 锁仅在最后短暂持有。在操作的大部分时间里——对大表可能是数分钟——表保持完全可读可写。

内部发生的过程如下:

1.png

REPACK (CONCURRENTLY, VERBOSE, ANALYZE) repack_test;
INFO:  repacking "public.repack_test" in physical order
INFO:  "public.repack_test": found 0 removable, 1000000 nonremovable
       row versions in 38452 pages
Time: 9406.788 ms (00:09.407)

Before: 493 MB → After: 228 MB (54% reduction)

这里有三个选项:

  • CONCURRENTLY:在线重建,仅在最后进行文件交换时短暂持有排他锁。
  • VERBOSE:以 INFO 级别打印进度。
  • ANALYZE:在 repack 完成后运行 ANALYZE 以更新规划器统计信息。

使用 USING INDEX 的 REPACK

REPACK 还可以物理重排表的行以匹配索引。如果你的工作负载频繁读取相关行的范围,使用 USING INDEX 进行聚簇可能改善局部性。在自己的查询上测量效果;后续更新不会自动聚簇。

这对 REPACK 功能来说意义重大,不仅仅是消除膨胀。它本身就是一个性能特性。例如,假设你有一个 orders 表,经常查询 WHERE created_at BETWEEN ‘2026-01-01’ AND ‘2026-01-31’。没有物理排序时,这些行可能分散在数百个页面中。使用 REPACK orders USING INDEX idx_orders_created_at 后,行按日期顺序在磁盘上连续存储,因此范围扫描按顺序读取页面,而不是在整个表上进行随机 I/O。

你可能从旧版 Postgres 知道 CLUSTER。它做同样的事情,但会持锁。

REPACK (VERBOSE, ANALYZE) product_inventory USING INDEX idx_product_category;
INFO:  repacking "public.product_inventory" using index scan
       on "idx_product_category"
Time: 15230.264 ms (00:15.230)

Before: 618 MB → After: 320 MB (48% reduction, rows now ordered by category)

REPACK vs. VACUUM FULL 性能对比

我做了一些测试来验证效果。对于 493 MB 的测试用例,原始 200 万行删除 100 万行后剩余 100 万活行,报告的时间为:

2.png

在受限系统上的一次测试中,REPACK (CONCURRENTLY) 在所述表和测试条件下耗时 9.4 秒。结果因表、索引、工作负载和硬件而异。

REPACK CONCURRENTLY 的墙钟时间更慢。它在做更多工作:在表重建之上还有逻辑解码和 WAL 重放。这里的权衡是用更多时间换取表保持在线。

REPACK CONCURRENTLY 的要求

  • 需要被 repack 的表和索引 2 倍的空间,因为在一段时间内会有两份副本。
  • 表必须记录 WAL,不能是 UNLOGGED。
  • 表不能是分区表。
  • 表必须有一个可索引的主键。
  • 表不能是系统目录或 TOAST 表。
  • 每个数据库同时只能运行一个并发 REPACK。
  • 不支持使用非堆访问方法的表。

关于 MVCC 安全性的说明:REPACK CONCURRENTLY 并非完全 MVCC 安全。在最后的短暂交换期间,长时间运行的事务理论上可能错过并发变更。使用 repack 开始前所拍快照的并发事务可能看到表为空。这与 pg_repack 原有的限制相同,已记录在 Postgres 19 发布说明中。请根据工作负载的事务和一致性要求审查此行为。

何时使用 REPACK vs. VACUUM

常规 VACUUM 和 REPACK 解决不同的问题:

3.png

经验法则:autovacuum 处理日常维护。REPACK 用于需要将空间回收给操作系统或物理重排数据的时候——这些是常规 VACUUM 从根本上无法做到的。

估算 REPACK 需要多长时间

REPACK 时间随表大小、索引数量和可用 I/O 扩展。一个粗略模型:

REPACK time ≈ (time to read entire table) + (time to write new copy) + (time to rebuild all indexes)

你可以在运行 REPACK 之前估算:

-- 需要重写的表 + 索引有多大?
SELECT
    pg_size_pretty(pg_relation_size(relid)) AS table_data,
    pg_size_pretty(pg_indexes_size(relid)) AS all_indexes,
    pg_size_pretty(pg_total_relation_size(relid)) AS total,
    n_live_tup AS rows_to_copy
FROM pg_stat_user_tables
WHERE relname = 'my_table';

在受限系统(1 CPU、512 MB、4 MB maintenance_work_mem)上的测试:

4.png

CONCURRENTLY 开销大约是基本 REPACK 时间的 1.5 到 2 倍,因为它需要设置逻辑解码并重放任何并发变更。在具有快速 NVMe 和更多 CPU 的真实生产服务器上,这些时间会显著降低,但比例保持不变。

对于非常大的表(100+ GB),预计 REPACK 需要数分钟到数十分钟。相应规划,并使用 pg_stat_progress_repack 监控。

监控 REPACK 进度

REPACK 运行时,从另一个会话查询 pg_stat_progress_repack:

SELECT
    pid,
    datname,
    relid::regclass AS table_name,
    command,
    phase,
    heap_tuples_scanned,
    heap_tuples_inserted,
    heap_blks_total,
    heap_blks_scanned,
    index_rebuild_count
FROM pg_stat_progress_repack;

你会看到的阶段进展:

5.png

你可以在扫描阶段估算完成百分比:

SELECT
    phase,
    heap_blks_scanned,
    heap_blks_total,
    CASE WHEN heap_blks_total > 0
         THEN round(100.0 * heap_blks_scanned / heap_blks_total, 1)
    END AS pct_complete
FROM pg_stat_progress_repack;

REPACK CONCURRENTLY 是 Postgres 19 中最重要的面向 DBA 的功能。它将在线表重建带入核心,在大多数情况下消除了对 pg_repack 的需求,并提供了比长期以来存在的 VACUUM FULL / CLUSTER 二分法更清晰的接口。如果你在生产中管理有显著膨胀的表,这就是你升级的理由。

Postgres 19 目前有第一个候选版本(RC1),预计 RC2 于 11 月 12 日发布,GA 预计在 2026 年 11 月/12 月晚些时候。如果你想今天就试试 REPACK,启动一个 beta 实例,看看它在你最膨胀的表上表现如何。

本文作者:Craig Kerstiens

原文链接:https://www.snowflake.com/en/blog/engineering/postgres-19-repack-table-bloat/

基于任务的后勤智能体:三段构建与演进设计探究 这是系统智能化的核心难点。例如,对于一个“加强连级滩头阵地防御”子任务,系统会根据防御时长、预期敌军攻击强度、地形等因素,计算出所需的弹药(不同弹种的具体数量)、构筑工事的器材、人员的给养和饮水量、以及医疗救护的药品和血包数量。首先进行分词、词性标注等基础处理,然后利用在军事语料库上训练的命名实体识别(NER)模型,提取出关键实体,如任务类型(“夺控作战”)、作战对象(“Y岛”)、时间约束(“D日H时”、“24小时内”)、成功标准(“建立稳固滩头阵地”)、保障重点(“弹药充足”、“及时救治”)等。 阅读详情

相关推荐

Habitat-baselines v0.1.7防踩坑手把手带你跑通(全网唯一)

Habitat-baselines v0.1.7防踩坑手把手带你跑通(全网唯一)

shannanshouyin的博客 1278

PostgreSQL MVCC 与 VACUUM 运维实战:死元组回收、autovacuum 调参与 XID 回卷防护(Papermark 项目视角)

本文以 PostgreSQL 官方技能文档《[MVCC and VACUUM](https://link.gitcode.com/i/1fb5e7ffd2a08f90170423eb2e0ece4c)》为骨架,系统讲解 MVCC 下死元组(dead tuples)的产生与回收机制、`VACUUM` 与 `VACUUM FULL` 的取舍、autovacuum 触发公式与调参策略,以及围绕 XID

gitblog_00756的博客 185

SLG大地图实战:从Tilemap到Shader的地表渲染与数据分层架构

本文深入探讨了SLG大地图开发中的关键技术挑战与解决方案,包括Tilemap系统的深度改造、地表渲染的Shader优化以及数据分层架构设计。通过实战案例,展示了如何实现视觉表现丰富、性能开销可控的SLG大地图,特别适合Unity开发者和游戏技术美术参考。

weixin_28693309的博客 523

177.Agent-LangGraph-MCP的构成说明

MCP架构通过MCP主机、客户端与服务器的协同,实现工具、资源与提示词的统一管理。MCP服务器提供Tools、Resources、Prompts能力,MCP客户端则负责发现、调用与读取,使Agent可按需获取上下文。其核心在于将工具从Agent中抽离,封装为可复用的服务,提升灵活性与可维护性,推动AI应用高效协作。

计算机王的博客 289

STM32F103ZET6驱动57闭环步进电机(连线+代码)

一、设备: 1. STM32F103开发板 (普中F103的板子) 2. 57闭环电机带驱动 3. 24V/3A的直流电源,用于给电机驱动供电 简单说明:使用Keil5编程,主要使用了PWM波,外部中断和时间中断,按键控制电机使能和脱机并且控制PWM的周期,调节周期即调节电机的转速。 二、STM32开发板与电机驱动的连线: 1.PUL-、ENA-、DIR-与STM32的连接方法: 可以参考CSND的这个链接中的说明,使用共阴极接法:STM32F407-用TB6600驱动器驱动57步进电机(代码

baidu_39071234的博客 7430

深入解析CAN2.0A与CAN2.0B协议:帧格式与通信机制对比

本文深入对比了CAN2.0A与CAN2.0B协议的核心差异,重点解析了11位标准帧与29位扩展帧的帧格式、标识符长度及通信机制。文章阐述了CAN2.0B向下兼容的特性,并探讨了在汽车电子、工业控制等复杂网络中,如何根据项目需求、兼容性及实时性要求,在标准帧与扩展帧之间做出合理选择。

weixin_29163797的博客 396

Docker Compose:搭建本地多服务开发环境

从一个 Java API、PostgreSQL 和 Redis 开始,配置服务名、端口、环境变量、健康检查、数据卷和依赖关系。理解 Compose 文件如何被解析、项目如何隔离,以及哪些数据不能依赖“重建容器”保留,能够把个人开发环境整理成团队可复用的启动入口。

m0_62221377的博客 477

基于STM32的多参数水质检测仪系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6主控,搭配pH、TDS、浊度、水温四大核心水质检测模块,完整实现了多参数水质检测仪的全流程开发,从多通道ADC采集、数字滤波、温度补偿、专业校准、阈值报警到人机交互,全流程无跳步保姆式拆解,配套逐行注释可直接编译的开源代码,新手跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 486

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 436

【Macbook-Latex安装部署教程】【Win-Texlive镜像下载】【简单易上手】MacTex+Vscode/Texstudio

该教程记录自己在mac()上安装部署Latex环境的经验,整个教程操作简单,配置要求少,易上手。教程分成三部分:Mactex下载与安装,Vscode插件下载与配置文件修改,Texstudio安装。

sunriseOvO的博客 2571

100天精通Python(可视化篇)——第89天:Bokeh库绘图可视化基础入门(参数说明+案例实战)

专栏导读 一、Bokeh是什么? 二、安装与导入 三、Bokeh接口介绍 四、创建图表 五、添加自定义渲染器 切换主题 添加图例 图例位置 图例方向 图例背景和边界 图例文本的外观 行列布局 网格布局

努力让自己发光,对的人才能迎着光而来 1万+

【基于 WebSocket 的多用户网页五子棋】—— 数据管理模块

但行好事,莫问前程

qq_42996461的博客 251

工业质检升级!C#上位机集成YOLOv8.3.138+Blob分析:尺寸测量+缺陷检测一步到位

工业场景的技术选型,从来不是“选最先进的”,而是“选最适配的”。这个项目的成功,不在于采用了多前沿的技术,而在于找对了“贴合场景的技术组合”和“落地导向的实施思路”。C#上位机的稳定性保障了系统长期运行,YOLOv8.3.138的精度解决了缺陷检测痛点,Blob分析的抗干扰能力确保了尺寸测量准确,三者结合实现了“1+1+1>3”的效果。先摸透场景,再选技术:不要盲目追求最新模型,先深入了解车间环境、生产节奏、精度要求,选择兼容性强、稳定性高的技术方案;数据质量决定模型性能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 611

OpenClaw 深度调查:把 AI 助手做成你自己的控制平面

对 openclaw/openclaw 的完整技术尽调:Gateway 架构、Agent 运行时、工具与沙箱、30 个消息通道、181 个插件、安全信任边界、工程代价与采用建议。17 章 / 10 张图,全部数字标注口径,数据截至 2026-10-31。

厚积薄发 302

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

IDEA 简介:从零认识 IntelliJ IDEA

IDEA 全称,是由 JetBrains 公司开发的一款主流 Java 集成开发环境(IDE)。它集代码编辑、编译、调试、测试、版本控制、构建管理等功能于一体,被大量 Java 开发者视为日常开发的首选工具。所谓 IDE(Integrated Development Environment,集成开发环境),就是把写代码所需的各类工具整合到同一个界面中。相比只用文本编辑器加命令行编译,IDE 能显著减少重复操作,让开发者把精力集中在业务逻辑上。

ztI10的博客 178

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

TransactionInactiveError:await 之后事务已经不活跃了

TransactionInactiveError 出现于 IndexedDB 事务已结束(非 active 状态)时调用 put、get 等操作。常见于 await 后或 setTimeout 中执行请求,因任务已完成,事务已提交或进入 finished 状态。请求必须在创建事务的同一任务中挂起,否则无效。解决方法:在 onsuccess 回调内同步发起后续操作,或提前将所有请求挂入事务。避免在异步上下文中使用事务操作,确保请求在事务活跃期内完成。

qq_40822000的博客 159

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Docker部署linkding:HTTPS与数据备份

部署私人书签库,除了让页面能够打开,还需要考虑几个实际问题:重建容器后数据是否保留、登录和保存是否正常、升级前怎样备份,以及出现 502 或 CSRF 错误时从哪里检查。本文使用 Docker Compose 部署 linkding,采用默认 SQLite 数据库,通过 Caddy 提供 HTTPS,并完成账户创建、数据持久化验证和备份。如果重建后账户或书签消失,应先检查是否换了项目目录、改了挂载路径,或者启动了另一套实例,不要急着重新初始化。遇到权限问题,应根据日志确认具体目录和运行用户,再调整权限。

tedcloud123的博客 170

云计算课程小组PPT汇报任务书

36人分为6组,每组6人;形式:生活案例调研 + 理论解读;汇报时长7‑9min;PPT建议10‑14页。

Michelle8023的博客 208

大表 ALTER TABLE 怎么做?NineData OnlineDDL 配置与执行实践

介绍NineData OnlineDDL大表变更实践,涵盖执行策略、切表控制、拷贝批次与可视化进度追踪。

dbasenewbie的博客 295

软件项目交付时,源代码之外还应该交付哪些技术资料?

软件项目交付时,除可运行程序外,还应核对源代码、数据库结构、接口文档、部署运维、测试验收和账号资产。本文从实际交付环节拆解完整资料清单,并说明合同如何约定交付范围、知识产权与维护边界。

chengduyoushu的博客 306

Axum 初步入门学习笔记

)自定义错误实现后,可以直接作为Result的ErrAxum 是一个构建在 Tokio、Tower、Hyper 之上的 Rust Web 框架,核心能力是:Router 路由、Extractor 提取器、Tower 中间件、IntoResponse 响应机制、State 共享状态。那张分层架构图是“地图”不是“说明书”:它帮你建立全局观,但 Service、Repository、数据库、Redis、MQ 都是你自己在 Handler 内部调用的业务/基础设施层,不是 Axum 自带的。

weixin_43219667的博客 192

MySQL报Too many open files?句柄耗尽的排查与参数配置

文章讲清 max_connections 与 open_files_limit 两个额度、句柄被谁占走、分区表为什么最容易踩,给出从 error log 到 /proc/pid/limits 的定位顺序与句柄预算算法。

「一个在数据库赛道上边学边分享的学妹」——聚焦国产数据库/信创方向、分享学习笔记、踩坑经验和行业观察。 336

SQL Server 数据库双备份:简化配置,兼顾本地留存与异机归档

本文针对中小企业SQLServer数据库备份难题,提出简化配置与本地+异机双副本方案。传统原生备份依赖手动脚本,存在配置复杂、传输易中断、日志分散、静默失败等问题。推荐使用图形化工具实现备份、本地留存与异机同步一体化管理,支持断点续传、加密传输、自动清理与版本控制,降低运维负担。双副本策略提升数据安全性,本地快速恢复,异地防硬件故障。建议定期验证恢复流程,确保备份可用性。

2501_93776716的博客 294

Agent 安全实战:间接提示注入的四个攻击面与防御体系

当 Agent 从 "生成内容" 走向 "执行动作",安全边界就从内容合规变成了权限越界。本文拆解间接提示注入在网页抓取、工具返回值、MCP 连接器、长期记忆四个位置的真实攻击路径,对照 Claude、GPT、Gemini 在工具调用权限模型上的设计差异,给出可直接落地的五层防御体系。

阡陌数智,专注大模型网关与 LLM 工程落地 281

Redis 入门详解:核心特性、重要文件与全局命令实战

本文系统介绍了Redis的核心特性、重要文件及全局命令。Redis凭借内存存储、C语言实现和单线程设计,具备极高的读写性能;支持持久化(RDB/AOF)、主从复制与集群架构,适用于缓存、排行榜、计数器等场景,但不适合存储海量冷数据。文中还解析了常见面试题,如为何快速、单线程原理、持久化机制、KEYS *禁用原因及过期键处理策略,强调其在高并发场景下的优势与局限。

2303_77004089的博客 206

【FDE前沿部署工程师实战教程】第62章:Enterprise AI Developer Platform——企业级 AI 开发者平台与低代码 AI 应用工厂

企业从AI能力平台迈向AI应用生产平台,需构建统一的企业级AI开发者平台,将模型、RAG、Agent、Workflow等能力封装为可视化、可复用的开发工具。通过PromptIDE、AgentBuilder、WorkflowBuilder等模块,实现低代码与专业代码协同,降低开发门槛。平台覆盖应用全生命周期管理,集成测试评估、安全治理与CI/CD发布体系,推动AI应用规模化、标准化交付。最终形成“需求→设计→开发→测试→发布→运营”的企业AI应用工厂模式,助力制造等行业的智能化转型。

IT古董 315
上一篇: PostgreSQL 日报|CloudNativePG 晋级 CNCF 孵化(11 月 11 日)
下一篇: PostgreSQL 日报| glibc 升级可静默损坏索引(11 月 12 日)
IvorySQL
博客等级 码龄5年 745粉丝 566原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值