从双解析器到循环工程:IvorySQL 五年技术演进路线的深度观察

图谱后端选型:Memgraph vs Neo4j vs 嵌入式 SQLite,什么时候该切换? 本文通过脚本自动探测代码图谱规模,对比SQLite、Memgraph与Neo4j在不同节点量级下的性能表现。实测表明:10万节点内嵌入式SQLite凭借低延迟和轻量部署仍具竞争力;超15万节点后,Memgraph适合低延迟、高并发场景;而Neo4j仅在百万级图谱且需复杂查询时才具备优势。配套提供一键测试延迟与平滑迁移后端的Python工具链,实现按需选型与无缝切换。 阅读详情

作者:魏波,北京晟数科技技术顾问、PG分会副秘书长。

图片1.png

写在前面

作为一个在 PG 社区摸爬滚打了十几年的老兵,见证了太多基于 PG 的衍生项目起起落落。很多项目上来就喊全兼容 Oracle,结果做着做着就变成了 PG 改个名,或者兼容层越做越厚,最后跟 PG 主分支越离越远,成了没人维护的死分支。

所以当 2021 年底 IvorySQL 刚出来的时候,我其实是持观望态度的。又是一个做 Oracle 兼容的?能撑多久?

但四年多过去,看着 IvorySQL 从 1.0 走到 5.4,从简单的函数兼容做到双解析器架构,再到现在 AI + 云原生 + 循环工程的全面布局,我必须说:这支团队走出了一条不一样的路,而且走得很稳。

最近翻了翻他们的官方 GitHub 仓库,几组数据让我印象深刻:

  • 60,770 次提交、49 个分支、574 个标签——迭代密度相当高
  • 30+ 位贡献者——社区已经形成规模,不是单靠一家公司在推
  • 代码构成:C 75.9%、PLpgSQL 12.0%、Perl 6.0%、Yacc 2.1%——典型的数据库内核项目结构,Yacc 的占比也侧面印证了双解析器的实现方式
  • Apache-2.0 协议——商业友好,没有 copyleft 限制

今天我想从技术视角,结合官方仓库的一手信息,跟大家聊聊 IvorySQL 这五年的演进路线,以及背后的技术选型思考。

一、架构之辩:为什么双解析器是正确的路?

做 Oracle 兼容,最难的不是兼容多少功能,而是用什么方式兼容。

这个问题上,行业里大概有三条路线:

路线一:中间件代理层

在应用和数据库之间加一个代理,把 Oracle 语法翻译成 PG 语法。代表产品很多,优点是对数据库内核没侵入,缺点也很明显:

  • 性能损耗大,每次 SQL 都要经过翻译层
  • 存储过程、包这些复杂对象根本翻译不了
  • 调试困难,出了问题不知道是翻译层的锅还是数据库的锅

这条路本质是绕着走,适合简单场景,但深入不了核心系统。

路线二:内核深度修改

直接在 PG 内核里改,把 Oracle 语法揉进 PG 的解析器里。优点是性能好,缺点是:

  • 对 PG 内核侵入太大,后续升级版本成本极高
  • 改着改着就跟 PG 主分支分叉了,最后变成自己维护一个分支
  • 社区贡献很难回流,越做越封闭

这条路是硬刚,技术上能走通,但工程成本太高,很多团队死在升级路上。

路线三:双解析器架构(IvorySQL 的选择)

IvorySQL 3.0 推出的双解析器架构,我认为是目前最优雅的方案:

图片2.png

从官方仓库的代码结构来看,Oracle 解析器的语法文件(ora_gram.y)是独立存在的,跟 PG 原生的 gram.y 互不干扰。这印证了双解析器的设计思路——不是在原有解析器上打补丁,而是新增一套完整的解析器。

这个设计的精妙之处在于:

1. 语法层分离,执行层统一

  • SQL 解析各走各的,PG 语法走原生解析器,Oracle 语法走新增的 ora_gram.y
  • 解析完都生成 PG 的内部语法树,后面的优化、执行完全复用 PG 原生能力
  • 这意味着 PG 内核的所有性能优化、新特性,IvorySQL 都能直接继承

2. 对内核侵入最小化

  • 只在解析器入口加了一个 hook,根据端口或 GUC 参数决定走哪个解析器
  • 核心执行引擎几乎没改,后续升级 PG 版本成本极低
  • 从 16 到 17 再到 18,每次大版本升级 IvorySQL 都能在 2 个月内跟上,这就是架构优势

3. 插件化兼容层

  • Oracle 特有的数据类型、函数、系统视图,都放在 ivorysql_ora 插件里
  • 想用就加载,不想用就关掉,不影响原生 PG 的运行
  • 兼容特性的迭代可以跟内核解耦,各自独立演进

我一直认为,好的架构不是功能最多,而是取舍最合理。 双解析器架构就是典型的取舍智慧——它不追求 100% 完美兼容,而是在兼容度、可维护性、性能三者之间找到了一个最优平衡点。

二、PL/iSQL:Oracle 迁移最深的那道坎

如果说 SQL 语法兼容是面子,那 PL/SQL 兼容就是里子。

很多企业的 Oracle 数据库里,跑着成千上万行存储过程、函数、包,这些才是业务逻辑的核心。迁数据库,最头疼的不是改 SQL,而是重写这些存储过程。

IvorySQL 在这方面的思路也很有意思——不是翻译,而是原生支持。

IvorySQL 的 PL/iSQL 模块,并非简单地在 plpgsql 上修修补补,而是基于 PostgreSQL 成熟的过程语言框架,全新实现了一套兼容 Oracle PL/SQL 语法的解析器和执行引擎:

  • 词法分析器改成 Oracle PL/SQL 风格
  • 语法分析器支持 Oracle 的语法糖(%ROWTYPE、%TYPE、EXCEPTION 处理等)
  • 执行引擎复用 PG 的过程语言框架

这个方案的好处是:

  1. 原生执行,没有翻译层的性能损耗
  2. 可以直接调用 PG 内部的所有函数和类型
  3. 跟 PL/pgSQL 共存,同一个数据库里两种过程语言都能用

到了 5.x 系列,PL/iSQL 已经支持:

  • 基本的流程控制(IF、LOOP、WHILE、FOR)
  • 游标操作
  • 异常处理
  • %TYPE 和 %ROWTYPE 属性
  • 嵌套子程序
  • 包(Package)完整生命周期支持

这意味着什么? 意味着很多中等复杂度的 Oracle 存储过程,拿过来改改就能直接在 IvorySQL 上跑,不用完全重写。对于迁移项目来说,这可能就是能做和不能做的区别。

当然,PL/SQL 的兼容是个无底洞,Oracle 几十年积累的特性太多了。但 IvorySQL 这个路线是对的——先把 80% 常用的场景做好,剩下 20% 慢慢补,而且有架构支撑,补起来不费劲。

三、从 1.x 到 5.x:版本演进的技术逻辑

很多人看版本更新,只看加了什么功能,但我更关心为什么这个版本加这个功能。IvorySQL 的五个大版本,每一步都踩得很准:

1.x(2021-2022):验证技术路线

基于 PG 14,先做最基础的数据类型、函数兼容。目标不是做全,而是验证基于 PG 做 Oracle 兼容这条路走得通。快速迭代,收集用户反馈。

技术视角:这是典型的 MVP 思路。先跑通最小闭环,再考虑做大做全。很多团队死在一开始就想做完美的产品。

值得注意的是:直到今天,1.x 系列还在更新,最新版本是 1.22,基于 PG 14.22。这说明IvorySQL团队不仅致力于新版本的开发,也对已有的稳定版本保持着积极的维护和Bug修复,这对于生产环境的用户至关重要。

1.22 还新增了几个很实用的特性:

  • 全局唯一索引(Global Unique Index):分区表的跨分区唯一索引,非分区键也能保证全局唯一性,PG 和 Oracle 双模式都支持
  • 基表列类型变更时自动重建视图:改列类型时自动保存依赖视图定义,改完后按依赖顺序自动重建,省了很多手工操作
  • 无主键表逻辑复制自动回退到 FULL IDENTITY:新增 GUC 参数,逻辑复制时遇到没主键的表自动用 REPLICA IDENTITY FULL,不用一张张表手动改

这些特性看起来不大,但都是实际生产中经常遇到的痛点。能关注到这些细节,说明团队是真的在跟用户一起打磨产品。

2.x(2022-2023):扩大兼容覆盖面

基于 PG 15,补更多的 Oracle 常用函数、系统视图。开始接触真实的迁移项目,收集一线需求。

技术视角:这是需求驱动的阶段。从我想做什么变成用户需要什么,这是开源项目从玩具到工具的关键一步。

3.x(2023-2024):架构重构,奠定基础

基于 PG 16,推出双解析器架构、双端口、PL/iSQL。从补丁式兼容升级为架构级兼容。

技术视角:这是最关键的一步。很多项目在 2.x 的阶段就卡住了——兼容特性越堆越多,代码越来越乱,最后重构不动。IvorySQL 敢在 3.0 做这么大的架构调整,说明团队有技术魄力,也有工程能力。

4.x(2024-2025):深化企业级能力

基于 PG 17,完善 Package、不可见列、权限管理。全平台支持,适配国产操作系统。推出在线体验环境,降低使用门槛。

技术视角:这是补短板的阶段。技术架构搭好了,接下来就是把企业级用得到的特性一个个补全。

5.x(2025-至今):拥抱 AI,开辟新战场

基于 PG 18,集成 AI 能力、云原生全面升级、支持 Skills 和循环工程,向 AI Agent 基础设施演进。

技术视角:这是最让我意外的一步。我原以为 IvorySQL 会一直在 Oracle 兼容这个赛道上深耕,没想到他们直接切入了 AI 赛道。

但仔细想想,这步棋走得很对:

  • Oracle 迁移是存量市场,总有一天会饱和
  • AI 是增量市场,空间大得多
  • PG 生态天然适合做 AI 基础设施(pgvector 就是最好的例子)
  • IvorySQL 有 PG 的底子,做 AI 能力是顺水推舟

而且最关键的是:他们不是为了蹭热点而加 AI,而是真的在做深度集成。

比如 5.4 推出的 IvorySQL Skills,官方描述是赋能 AI 助手成为 IvorySQL 数据库专家。这个定位很有意思——不是数据库加个 AI 插件就完事了,而是让 AI 助手能真正懂 IvorySQL,成为数据库专家。其效果如何,还需要更多用户在实际场景中检验。

结合现在 AI Agent 的趋势来看,这步棋很有前瞻性。以后数据库的使用方式可能会从写 SQL 变成跟 AI 说需求,那谁的数据库能让 AI 理解得更好、用得更溜,谁就有优势。

还有一点值得单独提——2026 年 6 月 Addy Osmani、Boris Cherny 等人提出的 Loop Engineering(循环工程)正在成为 Agent 时代的新工程范式,核心是“人从循环内的操作者退到循环之上的监督者”。这套范式包含自动化(Automations)、工作树(Worktrees)、技能(Skills)、连接器(Connectors)、子代理(Sub-agents)和记忆层(Memory)这六组件,其中 Skills(技能锚点)用来给 Agent 提供项目级事实基准,避免模型瞎编。

IvorySQL 5.4 配套的 IvorySQL Skills(Shawn Yan 开源,22 个技能包,覆盖部署、架构、Oracle 兼容、迁移等场景)正好踩在 Skills 这个组件上——让 Claude Code / Codex 这类 Agent"更懂 IvorySQL",而不是只会背 PG 通用知识。目前 IvorySQL 在 Loop Engineering 全套六组件里只落地了 Skills 这一段,但方向是对的:Agent 时代,谁能把数据库的领域知识做成 Agent 可消费的 Skills,谁就有话语权。

另外,5.4 一下子支持了 24 个 PostgreSQL 扩展,覆盖 AI、GIS、全文检索、调度、审计等各个领域:

  • AI 相关:pgvector、pg_ai_query、AGE
  • GIS 相关:PostGIS、pgRouting
  • 全文检索:pg_bigm、pg_jieba、PGroonga、pg_textsearch、Zhparser
  • 运维调度:pg_cron、pgagent
  • 性能优化:pg_hint_plan、pg_show_plans、pg_stat_monitor、plpgsql_check
  • 数据集成:pgsql-http、redis_fdw、pg_curl
  • 其他:ddlx、pg_partman、PgBouncer、system_stats、wal2json

这个扩展列表很有含金量,基本覆盖了企业级应用的所有常见场景。数据库的竞争,到最后拼的就是生态。

四、工程化:一个开源项目成熟度的试金石

看一个开源项目靠不靠谱,别光看功能列表,去看看它的工程化水平。代码规范、CI/CD、测试覆盖、发布流程,这些才是项目能不能长期维护的关键。
IvorySQL 在这方面做得相当扎实,从官方仓库能看到不少细节:

1. 代码规范与格式化

仓库里有 .githooks/pre-commit 钩子,提交代码时自动用 pgindent 格式化 C 代码。还有 make code-format 命令可以手动格式化。

Cirrus CI 上有专门的 FormatCheck 工作流,PR 里如果代码格式不对,CI 直接挂掉。这保证了整个代码库的风格一致性,对长期维护非常重要。

2. CI/CD 体系

用的是 Cirrus CI,从配置文件来看,任务分得很细:格式检查、构建测试、回归测试、多平台验证等等。PR 合并前必须过 CI,这是开源项目的基本操作,但能坚持做好不容易。

还有 CodeRabbit 的配置,说明他们在用 AI 辅助代码审查。这个挺潮的,也符合他们拥抱 AI 的整体路线。

3. 开发环境

提供了基于 Docker 的开发环境,docker compose up -d 就能起一个带所有依赖的开发容器。还有 Dev Container 配置,VS Code 里一键打开开发环境。

这对新贡献者很友好——不用花半天时间搭环境,拉代码直接就能开发。开源项目的贡献门槛越低,社区就越容易活跃。

4. 构建系统

除了传统的 Makefile,还全面支持 Meson 构建系统。PostgreSQL 社区近年已将 Meson 作为现代化的标准构建系统,而紧跟 PG 18 内核步伐的 IvorySQL 完美继承了这一技术底座。兼容两种构建系统,既照顾了老用户的使用习惯,又彻底拥抱了最新的工程化标准,给开发者更多选择。

5. 多仓库组织架构

IvorySQL 的开发分布在四个官方仓库:

  • IvorySQL/IvorySQL:数据库主仓库,核心代码
  • IvorySQL/Ivory-www:官方网站
  • IvorySQL/IvorySQL_docs:文档
  • IvorySQL/docker_library:Docker 镜像

这种分仓库的组织方式很专业,各仓库职责清晰,各自独立迭代。文档和代码分开,也方便文档贡献者参与,不用把整个数据库代码都拉下来。

总的来说,IvorySQL 的工程化水平在国内开源数据库项目里属于第一梯队。 很多项目只关注功能,不关注工程化,结果越做越乱,最后维护不动。IvorySQL 在这方面的投入,说明他们是认真想做长期项目的。

五、云原生:数据库的下一个战场

5.x 系列另一个让我印象深刻的变化,是云原生能力的全面升级。

以前的 IvorySQL,你得自己下载安装包、编译、配置、搭集群。现在:

  • Docker Compose 一键起单机
  • Podman、Swarm 都支持
  • Helm Chart 一键部署到 K8s
  • IvorySQL Operator 管理全生命周期
  • IvorySQL Cloud 可视化管理平台

这背后是数据库交付模式的变化。 以前企业买数据库,买的是软件 license;现在企业用数据库,要的是服务——一键部署、弹性伸缩、自动备份、监控告警、故障自愈。

IvorySQL Cloud 的推出,标志着他们从卖数据库软件转向卖数据库服务。这个转型在云原生时代是必须的,转得越早,优势越大。

IvorySQL 采用清晰的开源 + 商业双轨架构:
✧ 社区版:内核、Operator、Helm Chart 等核心能力全部开源
✧ 企业版:瀚高 HighgoDB(HGDB)提供企业级特性与技术支持
✧ 云服务:最新发布的 Higobase 提供全托管数据库服务能力

这个模式很典型——开源做生态、做广度;商业做服务、做深度。既保证了社区的活力,又有商业闭环。

六、几点冷静的观察和建议

说了这么多优点,作为技术人,还是得说点实在的问题和建议:

1. Oracle 兼容的最后一公里还很长

目前 IvorySQL 已经覆盖了大部分常用场景,但一些偏门的 Oracle 特性(比如某些优化器 hint、特殊的内置包、高级分区特性)还不支持。对于核心系统迁移来说,可能就卡那么一两个特性。

建议:可以考虑做行业兼容包——比如针对金融行业,重点补财务系统常用的那些 Oracle 特性,比漫无目的地全量补效率高得多。

2. 性能优化还有空间

双解析器架构在解析层的开销很小,几乎可以忽略。但 Oracle 兼容层(数据类型转换、函数实现等)还是有一些性能损耗的,特别是高频调用的场景。

建议:可以针对常见的 Oracle 函数做专门的性能优化,甚至用 C 重写一些热点函数。毕竟企业迁移,性能是硬指标。

3. 生态建设要跟上

PG 生态强大,很大程度上是因为扩展多。IvorySQL 虽然理论上兼容所有 PG 扩展,但实际使用中,有些扩展跟 Oracle 兼容模式一起用可能会有兼容性问题。

建议:建立一个官方认证的扩展兼容列表,告诉用户哪些扩展在 Oracle 模式下经过了测试,哪些可能有坑。这样用户用起来更放心。

4. AI 能力要做出差异化

现在大家都在加 pgvector,都在做 NL2SQL,如果只是简单集成,很难做出差异化。

建议:IvorySQL Skills 目前 22 个技能已覆盖部署、架构、Oracle 兼容、迁移等场景,是个很好的起点——Shawn Yan 那边已经开源了 ivorysql-migration(Oracle/MySQL → IvorySQL)和 ivorysql-oracle-compat(21 项兼容点)两个技能包,方向上社区已经铺了砖。下一步可以往迁移评估自动化再深一步:比如让 Agent 读 Oracle 源库的 DDL + PL/SQL 包,自动输出不兼容点矩阵 + 改写后的 IvorySQL DDL/PL/iSQL,附带人工复核建议。这块如果做成,对迁移动目的价值是指数级的。

另外结合 IvorySQL 的 Oracle 兼容优势,还可以做兼容 Oracle 语法的向量能力——比如 PL/SQL 里直接调向量检索、Oracle 风格的向量操作函数,从 Oracle 过来的用户不用学新东西就能用 AI 能力,这才是真正的差异化,比单纯集成 pgvector 有意义得多。

七、写在最后

图片3.png

做数据库是个苦活累活,慢工出细活。很多项目轰轰烈烈地来,悄无声息地走,能坚持五年以上的不多,上图也能看到 IvorySQL 在开源项目中的受欢迎程度。

IvorySQL 这五年走下来,我看到的是一支有技术追求、有工程耐心、有商业头脑的团队。他们不喊全面超越 Oracle 这种口号,而是踏踏实实地一个特性一个特性地补,一个版本一个版本地迭代。

从双解析器架构的技术选型,到开源加商业的商业模式,再到 AI 加云原生的战略布局,每一步都走得很稳、很准。

作为 PG 社区的参与者,很高兴看到这样的项目——它不是在重复造轮子,而是在 PG 的基础上做有价值的创新,既回馈了社区,又满足了市场需求。

未来几年,信创替换还会持续深入,AI 应用会越来越普及,数据库作为基础设施,会迎来新的机遇和挑战。IvorySQL 能不能抓住这个机会,从 Oracle 迁移首选成长为 AI 时代的企业级数据库,我们拭目以待。

从目前的技术路线、工程质量和执行节奏来看,这支团队的表现是值得信赖的。

参考资料

  1. IvorySQL 官方主仓库:https://github.com/IvorySQL/IvorySQL
  2. IvorySQL 官方网站:https://www.ivorysql.org/zh-hans/
  3. IvorySQL 文档仓库:https://github.com/IvorySQL/IvorySQL_docs
  4. IvorySQL Docker 镜像仓库:https://github.com/IvorySQL/docker_library
  5. IvorySQL 在线体验平台:https://trial.ivorysql.org/
  6. PostgreSQL 官方网站:https://www.postgresql.org/
  7. Shawn Yan. IvorySQL Skills GitHub 仓库:https://github.com/shawn0915/ivorysql-skills
SpringBoot+Vue+MySQL 高校学科竞赛平台 完整可运行版(源码+文档) 本项目基于SpringBoot+Vue+MySQL构建高校学科竞赛管理平台,覆盖学生、教师、领队教师、管理员四大角色,实现竞赛发布、报名、刷题、评分、公示等全流程闭环管理。系统架构清晰,技术主流,配套完整源码、数据库脚本、万字论文、开题报告、答辩PPT及部署文档,支持一键运行,适用于毕业设计、课程设计及院系二次开发,真正实现“开箱即用”。 阅读详情

相关推荐

Neo4j 智能供应链应用源代码简析

本文简析Neo4j智能供应链应用的源代码,让你也可以快速开发自己的供应链应用。

Neo4j 开发者博客 1681

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

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

m0_62221377的博客 477

告别时钟树平衡噩梦:在Innovus中巧妙设置stop/ignore pin来优化分段时钟网络

本文深入探讨了在Innovus工具中利用stop/ignore pin优化分段时钟树网络的高阶技巧。针对数字IC后端设计中的时钟树平衡难题,详细解析了特殊引脚属性的战略应用场景和配置方法,帮助工程师有效解决SoC设计中复杂的时钟结构问题,显著提升时序收敛效率。

weixin_30836759的博客 294

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

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

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

SRAM vs RRAM:存算一体芯片选型指南(含最新技术对比)

本文深入对比了SRAM与RRAM在存算一体芯片设计中的核心差异,为硬件工程师和架构师提供实战选型指南。文章从技术本质、性能、功耗、成本及设计风险等多维度剖析,指出SRAM基于成熟CMOS工艺,适合高精度、低延迟场景;而RRAM凭借非易失性和高密度潜力,在超低功耗、固定模型应用中优势明显。决策需综合项目预算、上市时间及技术储备。

e4f5g6h的博客 942

RK3308B开发板WiFi+蓝牙一体模组RTL8821CS驱动移植保姆级教程(含DTS配置与避坑点)

本文提供RK3308B开发板RTL8821CS WiFi+蓝牙模组驱动移植的完整教程,涵盖SDK环境配置、DTS设备树设置、内核编译优化及功能验证全流程。重点解析引脚复用冲突、电源管理等关键配置,并给出常见错误解决方案,帮助开发者快速实现双模通信功能。

weixin_42531163的博客 399

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

但行好事,莫问前程

qq_42996461的博客 250

【OpenClaw从入门到精通】:Web控制台使用全解析——可视化配置与监控(2026实操版)

在OpenClaw的多种管理方式中,Web控制台提供了最直观、最友好的用户体验。通过图形化界面,用户可以轻松完成复杂的配置任务,实时监控系统状态,以及进行各种管理操作。对于不熟悉命令行的用户来说,Web控制台是最佳选择。

一键难忘的博客 1934

C++算法(七)

C++ stack算法题和一些客观题

2503_94479566的博客 378

#systemverilog# 之 event region 和 timeslot 仿真调度(三)Verdi 辅助查看

通过今天的学习,我们知道:event region 是event sequence 的全集。我们打开了 event region feature 也就开启了event sequence 的功能。

那么菜的博客 1367

SSE 传输过程中,丢失空格和回车符,怎么解决?

Server - Sent Events(SSE)即服务器发送事件,是 HTML5 中的一项 Web API,用于实现服务器向客户端浏览器推送实时数据的功能。

936

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

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

厚积薄发 294

安全与加密常识(10)linux系统证书管理

1. 将自定义CA证书(如my-ca.crt)放到源目录# 2. 编辑配置文件,启用该证书(末尾添加一行 my-ca.crt)# 3. 执行命令同步(核心工作环节)# 4. 验证结果:检查是否生成哈希链接和合并到证书束ls /etc/ssl/certs/my-ca.pem # 证书文件ls /etc/ssl/certs/$(openssl x509 -hash -noout -in /usr/share/ca-certificates/my-ca.crt).0 # 哈希链接。

二进制君 292

IDEA 简介:从零认识 IntelliJ IDEA

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

ztI10的博客 177

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

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

qq_40822000的博客 159

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

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

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

Michelle8023的博客 208

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

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

大表 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的博客 187

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

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

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

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

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

2501_93776716的博客 291

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

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

2303_77004089的博客 206

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

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

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

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

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

IT古董 314

5个陷阱和解决方案:MongoDB源码中自动化测试平台的数

在现代软件工程实践中,自动化测试平台扮演着至关重要的角色,它确保了系统的稳定性和迭代的可靠性。然而,随着业务数据量的快速增长以及并发写入需求的不断上升,基于MongoDB构建的自动化测试平台常常面临性能瓶颈和数据一致性问题。本文将围绕MongoDB源码中一个关键模块——,通过一行一行代码的解读,揭示其设计原理、性能调优点及常见陷阱,适合希望深入理解数据库实现机制的高级工程师。

wuchangjian的专栏 172

PostgreSQL 全文搜索与推荐系统中的高并发处理方案

引言在构建一个需要支持全文搜索与推荐系统的应用时,PostgreSQL 的性能表现和稳定性至关重要。面对高并发请求、数据一致性要求以及系统可用性挑战,许多开发者往往忽略了 PostgreSQL 所提供的一系列高级特性。本文将结合生产环境经验,从高可用、幂等性、限流降级等角度出发,探讨如何在 PostgreSQL 中高效实现全文搜索与推荐系统,并分享 5 个实用技巧与方案。

qq_41106321的博客 153
上一篇: PostgreSQL 技术日报|2026-07-05
下一篇: PG 日报|新增建表 DDL 生成函数,柏林 AI 展会开展
IvorySQL
博客等级 码龄5年 745粉丝 565原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值