PG18 索引与查询特性在 IvorySQL5.6 上的实测

PostgreSQL 18.3与IvorySQL 5.3:AI数据库新纪元开启 随着AI应用深入各行各业,数据库的角色正从数据存储工具演变为智能数据基础设施。向量检索、RAG等场景对数据库提出了融合结构化查询与语义匹配的新要求。PostgreSQL 18.3作为年度大版本的重要补丁,在性能、可管理性与AI基础设施方面持续夯实;而IvorySQL 5.3则通过增强Oracle兼容性并深度集成AI能力,让企业可以在不推翻现有技术栈的前提下,直接获得内置的向量索引、混合查询与外部推理支持。两者结合,不仅简化了RAG系统的数据管道,也为从传统数据库向AI原生数据库演进提供了平滑路径。本文从版本 阅读详情

本文作者:山佳,国产数据库技术爱好者,持有 KCA、KCP、KCM ORACLE & MysqI 从业者,持有 ORACLE OCM、MysqI 8.0 OCP 致力分享数据库和运维领域相关知识。

摘要: 这一篇测 IvorySQL 5.6(PG18) 在索引与查询侧的三组新能力:nbtree 的 skip scan、GIN 索引的并行构建、以及控制文件复制方式的 file_copy_method。skip scan 是本版最实用的索引优化——多列 B-tree 索引在前导列没有等值条件时也能用上,我用 Index Searches 计数抓到了它的工作痕迹(一次 5 搜、对照场景 1 搜)。并行 GIN 构建在 150 万行 jsonb 表上抓到了 2 个 parallel worker。而 file_copy_method 只接受 copy,clone 在本环境直接报非法值。

阅读约定:代码块中 $ 前缀为普通用户执行,其余为终端实际输出。

一、环境与软件

项目取值
主机shanjiatst4.shanjia.com(192.168.40.153)
OS / 操作系统内核Rocky Linux 8.10 / 4.18.0-553.el8_10.x86_64
CPU / 内存 / 磁盘4 vCPU / 7.5 GiB / NVMe 60 G xfs(/)
SELinux / firewalldenforcing / running
软件说明
ivorysql5-5.6-74c405c.x86_64安装前缀 /usr/ivory-5
数据库内核版本PostgreSQL 18.6
索引方法(pg_am)brin / btree / gin / gist / hash / heap / spgist
测试库t_pg18

本文所有操作都在测试库 t_pg18 里进行,先建库(重跑时先删旧库,保证幂等):

$ psql -h 127.0.0.1 -p 5432 -d postgres -c "drop database if exists t_pg18;" -c "create database t_pg18;"
DROP DATABASE
CREATE DATABASE

先探一遍相关参数与索引方法,确认手上有什么牌。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "select version();"
PostgreSQL 18.6 (IvorySQL 5.6) on x86_64-pc-linux-gnu, compiled by gcc (GCC) 10.2.0, 64-bit
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "
select name, setting from pg_settings
where name in ('file_copy_method','max_parallel_maintenance_workers','max_worker_processes');"
file_copy_method|copy
max_parallel_maintenance_workers|2
max_worker_processes|8
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "show enable_indexskipscan;"
ERROR:  unrecognized configuration parameter "enable_indexskipscan"
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "select amname from pg_am order by 1;"
brin
btree
gin
gist
hash
heap
spgist

三点先说清楚。一,enable_indexskipscan 这个开关在当前版本不存在——skip scan 是默认开启、没有 GUC 可关的。二,file_copy_method 存在且默认 copy。三,两个 worker 参数要分开读:max_worker_processes 是 8,管的是整个实例的后台 worker 总配额,并行 worker、autovacuum worker 等所有后台进程都从这 8 个里出;max_parallel_maintenance_workers 是 2,只管单个维护操作(比如并行 CREATE INDEX)能启动几个并行 worker。所以「并行构建最多 2 个 worker」说的是分闸,跟总闸 8 不矛盾——一次构建最多占 2 个,离实例总配额还远。§3 实测起的 worker 数,就以这个 2 为上限。

二、nbtree skip scan

skip scan 解决的是一个老问题:多列 B-tree 索引 (a, b),一旦查询里没有前导列 a 的等值条件,PG 历来只能放弃这个索引。PG18 允许在这种情况下「跳过」前导列的不同取值、逐个探测后一列。

造一张前导列基数极低的表:a 只有 3 个取值,b 高基数,灌 30 万行,建 (a, b) 索引。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "
drop table if exists t_skip;
create table t_skip (a int, b int, payload text);
insert into t_skip select (g % 3) + 1, g, 'row-' || g from generate_series(1,300000) g;
create index idx_t_skip_ab on t_skip (a, b);
analyze t_skip;"
INSERT 0 300000
CREATE INDEX
ANALYZE

关键查询:只按第二列 b 过滤,完全不给前导列 a 任何条件。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "explain (analyze, buffers) select payload from t_skip where b = 200000;"
                                                         QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------
 Index Scan using idx_t_skip_ab on t_skip  (cost=0.42..21.73 rows=1 width=10) (actual time=37.625..37.637 rows=1.00 loops=1)
   Index Cond: (b = 200000)
   Index Searches: 5
   Buffers: shared hit=13 read=9
 Planning:
   Buffers: shared hit=69 read=1
 Planning Time: 0.334 ms
 Execution Time: 37.667 ms
(8 rows)

判定点就在 Index Searches: 5 这一行——它说明这次索引扫描对索引做了 5 次定位搜索。这正是 skip scan 的特征:因为 a 有 3 个不同取值,引擎为每个取值各探一次后一列,加上两个边界,合计 5 次。结果是 Index Scan using idx_t_skip_ab,而不是全表扫。核对结果是否正确:

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "select payload from t_skip where b = 200000;"
  payload
------------
 row-200000

说明:上面是建索引后的第一次执行(索引页尚未进缓存,read=9),耗时 37.7 ms;紧接着重跑同一查询,耗时回落到 0.1 ms 量级(Buffers: shared hit=22),Index Searches: 5 保持不变。这个计数才是判定 skip scan 的证据,耗时只反映缓存冷热。

再跑一个对照组:这次给前导列 a 也带上等值条件。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "explain (analyze, buffers) select payload from t_skip where a = 1 and b = 200000;"
                                                        QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------
 Index Scan using idx_t_skip_ab on t_skip  (cost=0.42..8.44 rows=1 width=10) (actual time=0.004..0.004 rows=0.00 loops=1)
   Index Cond: ((a = 1) AND (b = 200000))
   Index Searches: 1
   Buffers: shared hit=3
 Planning Time: 0.040 ms
 Execution Time: 0.009 ms
(6 rows)

注意对照组返回 0 行是正常的:a = (g % 3) + 1,b=200000 那一行的 a 等于 3 而不是 1,加个不匹配的前导列等值条件自然查不到。这里要看的是 Index Searches: 1——带上前导列等值条件后,引擎一次定位就够,不再需要逐值探测。

再补一个范围条件的对照,b between 200000 and 200010 同样触发 skip scan(Index Searches: 5,实际 11 行):

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "explain (analyze, buffers) select payload from t_skip where b between 200000 and 200010;"
                                                         QUERY PLAN
-----------------------------------------------------------------------------------------------------------------------------
 Index Scan using idx_t_skip_ab on t_skip  (cost=0.42..55.57 rows=10 width=10) (actual time=0.006..0.011 rows=11.00 loops=1)
   Index Cond: ((b >= 200000) AND (b <= 200010))
   Index Searches: 5
   Buffers: shared hit=16
 Planning:
   Buffers: shared hit=10
 Planning Time: 0.051 ms
 Execution Time: 0.016 ms
(8 rows)
查询条件计划Index Searches执行时间
b = 200000Index Scan(skip scan)537.7 ms(冷)/ 0.1 ms(热)
a = 1 AND b = 200000Index Scan(正常定位)10.009 ms
b between 200000 and 200010Index Scan(skip scan)50.016 ms

三者都是索引扫描,区别在搜索次数:带前导列等值时一次定位命中,不带时靠 skip scan 逐值探测(5 次)。把搜索次数当成一个可观测的指标,就能确认 skip scan 到底有没有被用上。

三、GIN 索引的并行构建

PG18 允许 CREATE INDEX ... USING gin 并行构建。造一张 150 万行的 jsonb 表,构建时把 maintenance_work_mem 提到 2 GB。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "
drop table if exists t_gin;
create table t_gin (id int, doc jsonb);
insert into t_gin
select g, jsonb_build_object('k1',g,'k2',g%1000,'tags',jsonb_build_array(g%7,g%11))
from generate_series(1,1500000) g;"
INSERT 0 1500000
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "show max_parallel_maintenance_workers;"
2

先在后台发起构建,同时采样进度视图 pg_stat_progress_create_index,能看到 GIN 构建的两个阶段。(这次构建的并行 worker 上限就是上面那个 2——单次维护操作的分闸;实例总闸 max_worker_processes=8 不是这里的约束。)

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "set maintenance_work_mem='2GB'; create index idx_t_gin on t_gin using gin (doc);" &
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -x -c "
select command, phase, blocks_total, blocks_done, tuples_total, tuples_done
from pg_stat_progress_create_index;"
-[ RECORD 1 ]+-------------------------------
command      | CREATE INDEX
phase        | building index: scanning table
blocks_total | 22719
blocks_done  | 10106
tuples_total | 0
tuples_done  | 0

过一会儿再看,阶段从「扫描表」切到「归并元组」:

-[ RECORD 1 ]+-------------------------------
command      | CREATE INDEX
phase        | building index: merging tuples
blocks_total | 0
blocks_done  | 0
tuples_total | 1502010
tuples_done  | 903953

(构建总共只有两三秒,采样要手快;多轮采到的 blocks_done/tuples_done 落在区间任何位置都算正常,blocks_total=22719、tuples_total=1502010 两个总数是稳定的。)

进度视图里的字段本身看不出并行 worker,所以我换用 pg_stat_activity 来抓「到底有没有并行」。删掉索引重建,同时采样 backend_type。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "drop index if exists idx_t_gin;" &
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "set maintenance_work_mem='2GB'; create index idx_t_gin_p on t_gin using gin (doc);" &
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "
select count(*) filter (where backend_type='parallel worker') as workers,
       count(*) filter (where backend_type='client backend')   as leaders
from pg_stat_activity;"
2|2
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "
select pid, backend_type, left(query,50) from pg_stat_activity where backend_type='parallel worker';"
93547|parallel worker|set maintenance_work_mem='2GB'; create index idx_t
93548|parallel worker|set maintenance_work_mem='2GB'; create index idx_t

判定点:构建期间出现了 2 个 parallel worker,且它们的 query 正是那条 CREATE INDEX。2 个正好顶到 max_parallel_maintenance_workers=2 这个单次操作上限(§1 说过,实例总配额 max_worker_processes=8 不构成约束)——GIN 并行构建在这台机器上是真的生效了。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "
select indexrelid::regclass, indisvalid from pg_index where indexrelid='idx_t_gin_p'::regclass;"
idx_t_gin_p|t

索引有效。再补一句对照:用 pg_stat_activity 抓 worker 是可靠的办法,因为 pg_stat_progress_create_index 这一版的字段里没有并行 worker 列——完整列清单是 pid, datid, datname, relid, index_relid, command, phase, lockers_total, lockers_done, current_locker_pid, blocks_total, blocks_done, tuples_total, tuples_done, partitions_total, partitions_done,只有 lockers_*、blocks_*、tuples_*、partitions_* 四组进度计数。

四、file_copy_method

file_copy_method 是 PG18 新增的 GUC,用来控制「按 FILE_COPY 策略复制数据库/表空间」时底层用哪种复制方式。默认值查出来是 copy。

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "show file_copy_method;"
copy
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "
select name, setting, enumvals, short_desc from pg_settings where name='file_copy_method';"
file_copy_method|copy|{copy}|Selects the file copy method.

按 copy 模式克隆一个库是通的。注意 CREATE DATABASE 不能和 SET 放进同一个 -c 里(-c "set ...; create database ..." 会报 CREATE DATABASE cannot run inside a transaction block,实测确认),得用 PGOPTIONS 把参数注入到独立会话。

$ PGOPTIONS='-c file_copy_method=copy' psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "create database db_fcm_copy STRATEGY=FILE_COPY;"
CREATE DATABASE
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "select datname from pg_database where datname='db_fcm_copy';"
db_fcm_copy

但 clone 这个取值在本环境直接不可用。 同样的命令换成 clone:

$ PGOPTIONS='-c file_copy_method=clone' psql -h 127.0.0.1 -p 5432 -d t_pg18 -c "create database db_fcm_clone STRATEGY=FILE_COPY;"
psql: error: connection to server at "127.0.0.1", port 5432 failed: FATAL:  invalid value for parameter "file_copy_method": "clone"
HINT:  Available values: copy.

pg_settings.enumvals 也印证了这一点——只有 {copy} 一个取值:

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "
select name, setting, enumvals from pg_settings where name='file_copy_method';"
file_copy_method|copy|{copy}

也就是说,PG18 引入了 file_copy_method 这个开关,但在 IvorySQL 5.6 这套二进制 + 该文件系统上,实际可用的只有 copy 一档;clone(基于 reflink 的零拷贝)在本环境没有可用取值。这个结论是「看 enumvals 说话」,不是猜的。

五、这次实际踩到的坑

坑一,enable_indexskipscan 不存在。 我本来想用 show enable_indexskipscan 确认 skip scan 是否开启,结果报 unrecognized configuration parameter。事实是 skip scan 在 PG18 里没有独立开关,默认就是开的,只能靠 EXPLAIN 里的 Index Searches 计数去确认它有没有被触发。

坑二,SET 与 CREATE DATABASE 放进同一个 -c 会失败。 实测 -c "set file_copy_method='copy'; create database db_should_fail;" 报 ERROR: CREATE DATABASE cannot run inside a transaction block——一个 -c 里的多条语句被当成单个隐式事务发送。两种绕法:拆成两个 -c(SET 留在会话里,CREATE DATABASE 单独成事务,实测可成),或者更稳妥地用 PGOPTIONS='-c file_copy_method=copy' psql -c "create database ...",让参数以启动参数的方式生效。

坑三,file_copy_method 的 clone 值在本环境非法。 这不是语法问题,是取值域问题——enumvals 里只有 {copy},clone 提示 Available values: copy.。做环境评估时别默认两个取值都在。

六、终态

复核三项结论:

$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "explain (analyze, buffers) select payload from t_skip where b = 200000;" | grep -i 'Index Searches'
   Index Searches: 5
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "select indisvalid from pg_index where indexrelid='idx_t_gin_p'::regclass;"
t
$ psql -h 127.0.0.1 -p 5432 -d t_pg18 -Atc "select enumvals from pg_settings where name='file_copy_method';"
{copy}

nbtree skip scan(以 Index Searches 计数为证据)、GIN 索引并行构建(以构建期间的 parallel worker 为证据)、file_copy_method(取值域只有 copy)三组能力在 PostgreSQL 18.6 (IvorySQL 5.6) 上实测完毕,数字与结论均来自真机执行。

⭐️白嫖的阿里云认证⭐️ 【真题&参考答案】:大模型Clouder认证:利用大模型提升内容生产能力 【摘要】真题「大模型Clouder认证:利用大模型提升内容生产能力」 阅读详情

相关推荐

保姆级教程:用NovAtel Inertial Explorer 8.7搞定GNSS/INS紧组合后处理(附避坑指南)

本文提供NovAtel Inertial Explorer 8.7的GNSS/INS紧组合后处理全流程教程,涵盖环境准备、数据转换、基站坐标解算及紧组合处理等关键步骤。特别针对零基础用户,分享实用技巧和常见陷阱,帮助高效完成高精度组合导航数据处理,适用于测绘、自动驾驶等领域。

weixin_42614269的博客 279

IvorySQL 5.3正式发布:基于PG 18.3内核的Oracle兼容与原生PG双轨实践

在开源数据库生态中,PostgreSQL一直是企业级应用的可靠基础,而如何将Oracle存量业务平滑迁移到开放架构,是许多技术团队长期关注的痛点。IvorySQL 5.3的正式发布,给出了一个值得研究的答案:它紧跟PG 18.3内核,通过深度兼容Oracle语义与原生PostgreSQL能力共生的双轨设计,让同一实例既能运行传统Oracle风格的包、层次查询和数据类型,又能调用PG原生的扩展与并行计算能力。从高并发大事务处理到复杂存储过程改写,这一版本在实际迁移场景中显著降低了SQL改写成本,也为数据库国产

weixin_32612263的博客 245

《遥感大模型生产级实战:从数据到决策的端到端AI工程》系列第三部分:城市洪涝灾害应急响应与评估平台实战-文章 14:项目二启动与多源异构数据对齐

我们将系统性地梳理城市洪涝场景下的所有关键数据源,从天上的卫星(光学与SAR)、空中的无人机,到地面的物联网传感器和社交媒体信息流,深入剖析每种数据在洪涝响应中的独特价值、获取方式与内在局限性。本章的核心将是一个详尽的、生产级的数据对齐技术全景,我们将分步解决三大核心对齐难题:空间对齐(将所有数据投影到统一的地理坐标系)、时间对齐(处理不同采样频率的时间序列)以及最困难的语义对齐(将文本描述与物理观测相关联)。

panshengwu的博客 2003

IvorySQL 5.3实测:基于PG 18.3内核,Oracle兼容与迁移实战

数据库内核是数据库稳定运行的核心,直接决定上层功能的可靠性与性能表现。在从Oracle迁移至PostgreSQL生态的过程中,兼容层的覆盖深度和稳定性成为降低改造风险的关键。基于PG 18.3内核的IvorySQL 5.3,在事务处理、锁竞争、执行计划优化等方面进行了增强,同时细化了对Oracle类型系统、数据字典和系统包的兼容行为,使存量应用迁移更加平滑。文章结合实测环境,解析了内核升级带来的性能提升,并针对物理机、容器、高可用及国产化部署场景给出实践建议,为数据库选型与升级提供参考。

weixin_33552698的博客 357

从零开始跑通3DGS教程:(五)3DGS训练

本文介绍了在Docker环境中训练3DGS(3D Gaussian Splatting)的方法,属于《从零开始跑通3DGS教程》系列文章的第五部分。主要内容包括:Docker环境准备(基于pytorch/pytorch:1.13.1-cuda11.6-cudnn8-runtime镜像)、容器内conda环境配置(安装必要依赖和3DGS相关组件)、以及训练命令执行步骤。文章提供了详细的命令行操作流程,帮助读者快速搭建3DGS训练环境。适合在Linux系统、Nvidia GPU环境下使用,完整教程可参考系列文章

诺有缸的高飞鸟的博客 1753

基于C++和Qt开发IEC104规约主站调试软件(第二章)

本章节主要讲解iec104主站软件界面设计和从站的连接功能以及部分功能代码的展示。

半青年的博客 858

IvorySQL 5.0 发布:基于 PG 18.0,Oracle 兼容、生态组件、云原生与易用性全面进化!

IvorySQL 开源社区小伙伴们,大家好,IvorySQL 开源社区今天激动的向大家宣布:IvorySQL 5.0 发布了!IvorySQL 5.0 基于 PostgreSQL 18.0 全面升级:Oracle 兼容性再突破,生态组件集成再升级,云原生深度支持,配合全平台安装包与在线丝滑体验,让复杂变得简单。

IvorySQL的博客 536

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1418

IvorySQL 多模融合实战:pgvector + AGE + pg_textsearch 在同一实例中的协同验证

维度结论向量数据✅完全支持。通过 pgvector 扩展,支持 16000 维向量、HNSW/IVFFLAT 索引、多种距离算法,Oracle 兼容模式下可用。知识图谱✅完全支持。通过 Apache AGE 扩展,支持 openCypher、属性图、SQL 混合查询。适合中等规模知识图谱,超大规模建议专用图数据库。全文检索✅完全支持。多扩展方案(pg_textsearch/pg_bigm/PGroonga),覆盖 BM25、中日韩分词、模糊检索、混合搜索等场景。⚠️本文聚焦功能可行性验证。

IvorySQL的博客 401

使用 Visual Studio Code 搭建 SAP UI5 本地开发环境

工欲善其事,必先利其器。时至今日,SAP 提供了非常多的 SAP UI5 开发工具,既包含本地搭建的,也包含浏览器里远端使用的工具,比如 WebIDE 和 Business Application Studio. 我们访问下面这个链接,就能找到所有这些工具的安装或者配置步骤: https://tools.hana.ondemand.com/#sapui5 如果想选择本地开发,SAP 推荐的工具是 Visual Studio Code,也就是本文要介绍的内容。 也可以下载 WebIDE 的本地安装包,将其安

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

版本发布| IvorySQL 5.1 发布

2025 年 12 月 18 日,IvorySQL 5.1 正式发布!IvorySQL 5.1 基于 PostgreSQL 18.1 构建,包含多项缺陷修复与功能改进。完整更新列表可参考官方文档站点。

IvorySQL的博客 883

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

PostgreSQL 18.3与IvorySQL 5.3:开源数据库的AI时代进化

AI应用的落地,核心瓶颈往往不在模型,而在于数据存储与检索层是否高效、可靠。如何兼顾结构化数据、向量检索与半结构化信息,成为技术团队选型的关键。PostgreSQL作为成熟的开源关系型数据库,通过pgvector等扩展将向量检索能力融入SQL体系,使得复杂查询、混合过滤与排序可以一站式完成。与此同时,IvorySQL基于PostgreSQL内核提供深度Oracle兼容,极大降低了存量系统迁移到开源路线的成本,并持续跟随上游版本演进。PostgreSQL 18.3与IvorySQL 5.3的发布,从内核层面强

weixin_28481133的博客 300

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IvorySQL 5.3深度解析:基于PG 18.3内核的Oracle兼容与全场景实践

数据库内核升级是提升系统性能和扩展功能边界的关键技术路径。其核心原理在于集成上游社区的最新优化,如查询执行器增强、并行处理改进以及更智能的维护机制,从而在事务处理效率、资源利用率和可观测性上获得显著提升。对于企业级应用而言,这种底层跃迁的技术价值在于能够更稳定地支持高并发OLTP场景,并为复杂分析查询(OLAP)和混合负载(HTAP)提供更好的基础。特别是在需要从传统商业数据库(如Oracle)向开源体系迁移或寻求更高可控性的场景中,一个兼具最新内核能力与深度生态适配的发行版显得尤为重要。本文聚焦的Ivor

weixin_30298497的博客 335

IvorySQL 5.3基于PG 18.3内核,升级兼容性与运维体验

数据库内核是存储引擎、事务管理、查询优化器等底层机制的总和,直接决定SQL执行效率与系统稳定性。PostgreSQL 18.3内核在并行查询、I/O路径、资源管理和安全加密上均有显著增强,为高并发交易与分析型负载提供了更扎实的底座。IvorySQL 5.3正是基于这一内核构建,并强化了Oracle兼容层、分区表管理和运维诊断能力,配合pg_upgrade工具可平滑完成从旧版本或PG生态的迁移。无论是新建应用、存量系统改造,还是容器化部署,该版本都提供了一个更稳、更易用的数据库选型方案。

weixin_32325225的博客 294

IvorySQL 5.3核心升级:性能优化与企业级功能解析

数据库WAL日志机制是确保事务持久性的关键技术,通过记录数据变更实现故障恢复。IvorySQL 5.3创新性地引入WAL日志并行回放机制,采用分组提交和流水线技术提升主从同步效率,实测显示主从延迟降低72%。在企业级应用场景中,该版本强化了资源隔离与审计功能,通过工作负载管理模块实现CPU和内存资源的精细化管控,使关键交易响应时间从1.2s优化至0.3s。结合分布式事务处理效率40%的提升,这些特性使IvorySQL成为金融、电商等高并发OLTP场景的理想选择,同时其Oracle语法兼容层和PL/SQL调试

weixin_33806859的博客 183

IvorySQL 5.3发布:基于PostgreSQL 18.3内核的企业级增强与全场景适配

关系型数据库作为现代应用的核心数据存储引擎,其核心价值在于通过ACID事务、SQL标准接口和可扩展架构,为业务提供稳定、一致的数据服务。其工作原理围绕存储管理、查询优化和并发控制等模块协同,确保数据安全与高效访问。在技术价值层面,一个优秀的数据库系统能显著降低开发复杂度,提升应用性能与可靠性。随着云原生和国产化趋势的深入,数据库技术正朝着全场景适配、深度性能优化和增强安全合规的方向演进。IvorySQL 5.3正是这一趋势下的代表性产品,它基于PostgreSQL 18.3内核,在完全兼容原生生态的同时,针

weixin_30835649的博客 369

HOW2026技术大会:PostgreSQL与AI数据库前沿解析

数据库技术作为现代信息系统的核心组件,其演进方向始终围绕性能优化与智能化展开。PostgreSQL作为开源关系型数据库的标杆,其18版本将通过动态并行查询、JSON Schema验证等特性实现47%的TPC-H性能提升。在AI与数据库融合领域,自然语言转SQL技术达到92%准确率,向量数据库通过混合索引策略实现3倍QPS增长。这些突破性进展将在HOW2026技术大会集中展示,特别是IvorySQL的分布式事务优化和Google Brain的AI-SQL网关系统,为金融、互联网等行业提供新一代数据基础设施解决

weixin_33416697的博客 239

PostgreSQL笔记4: 市场地位、生态全景与行业应用实践

技术能力实现方式适用场景全文检索tsvectortsquery+ GIN 索引内容搜索、日志分析半结构化数据JSONB类型 + GIN 索引灵活 Schema、配置存储向量检索pgvector扩展 + IVFFlat/HNSW 索引RAG、推荐系统、语义搜索混合查询上述能力的 SQL 组合复杂业务场景的统一数据访问表结构创建(若已存在则跳过)插入三条测试数据(包含 JSONB 和向量字段)全文检索查询(tsvectortsqueryJSONB 包含查询(@>运算符)

Wang的专栏 500

Ubuntu 修复 FinalShell 任务栏齿轮图标

FinalShell 可以正常启动,但任务栏显示默认齿轮图标。本次环境为 Ubuntu、X11,图标文件存在且有效。最终通过在用户级.desktop文件中加入,重新启动并固定应用,成功解决。st是本次实际测得的窗口标识。其他版本或安装方式应先测量,不要直接套用。

To be a better man 203

fast-lio2复现跑avia数据集

本文详细介绍了在Windows WSL2中安装Ubuntu 22.04并配置ROS2 Humble环境的全过程,涵盖系统初始化、ROS2安装、Livox雷达驱动编译及FAST-LIO2 ROS2版本的构建与验证。通过完整数据集回放与建图测试,成功实现点云地图生成与轨迹记录,并利用evo工具完成轨迹分析与可视化。最终输出包括累积点云地图、位姿轨迹及实验配置文件,为后续精度评估与复现提供基准。

chase_my_dream的博客 334

【T113】SDK Tina5.0 V1.2 使用记录(一)基本使用,初次编译等

SDK名称发行方其他描述全志官方tina2.0,仅支持 openwrt全志官方tina5.0 v1.2,支持 openwrt, buildroot百问网非官方,支持buildroot,用于开发板100ask_t113-pro。

似水流年 115

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

Java EE 进阶:8.MyBatis 操作数据库(入门)(第一弹)

要努力去发光,而不是被照亮~ 118

Spring Boot 数据源与 MyBatis(-Plus) 自定义配置详解

本文详解 Spring Boot 中单数据源环境下 HikariCP 与 MyBatis-Plus 的自定义配置。通过手动声明 SqlSessionFactory,实现下划线转驼峰、日志输出、一级缓存策略等精细化控制。结合 HikariCP 核心参数调优(如最大连接数、连接生命周期),确保高性能与稳定性。适用于仅需访问单一数据库的场景,避免多数据源复杂性,兼顾性能与可维护性。

BADAO_LIUMANG_QIZHI的博客 196

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

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

m0_62221377的博客 428

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

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

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 395
上一篇: PostgreSQL 日报| OAuth 校验库置空仍可登录(11 月 9 日)
IvorySQL
博客等级 码龄5年 745粉丝 557原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值