GaussDB为什么选择PostgreSQL

华为的GaussDB产品线由GaussDBT(OLTP)和GaussDBA(OLAP)组成,分别源自GaussDB100和GaussDB200。openGauss内核虽源于PostgreSQL,但华为对其进行了深度优化,特别是增强了数据库内核、高可用性和AI特性。选择PostgreSQL的原因包括代码质量高、功能完善、技术先进和扩展性强。

GaussDB并非是一个产品,而是一系列产品的统称,目前GaussDB产品线主要包括GaussDB T (OLTP)和GaussDB A (OLAP)。其中GaussDB T的前身是GaussDB 100,是华为自2007年开始在自研内存数据库基础上全面改造而来的一款分布式数据库,此前华为由于在电信计费领域的需求而自主研发了一款内存数据库。GaussDB A的前身是GaussDB 200,是华为自2011年开始基于PostgreSQL 9.2.4自主研发的一款具备多模分析及混合负载能力的大规模并行处理分布式数据库,支持行列混合存储以及线程化,支持高达2048节点的集群规模,提供PB(Petabyte)级数据分析能力、多模分析能力和实时处理能力。

openGauss内核虽然源于PostgreSQL,但华为在开发过程中结合企业级场景需求,通过C++语言(PostgreSQL是用C语言写的)对80+%的数据库内核代码进行了重构,修改和新增了70万行核心代码。着重在整体架构、数据库内核三大引擎 (优化器、执行引擎、存储引擎)、事务、以及鲲鹏芯片等方面做了大量的深度优化。

例如,通过引入向量化引擎和编译执行引擎等从多个维度重构了执行引擎,通过列存及自适应压缩等全新重构了存储引擎。除了数据库内核,在高可用、数据库安全和AI特性方面,openGauss数据库也做了极大的增强。PG11.3版本数据库中共有290个数据库参数,而openGauss目前有500多个数据库参数,每个参数对应一个数据库内核功能,所以可以看到华为对PG的内核做了非常大的改造和增强。

做数据库内核开发的技术难度很大,哪怕开发团队对内核架构与机制的制定上出现了丝毫的问题,上线后都极有可能会出现后果严重。有时一旦确定项目无法进行下去,甚至可能需要推倒重来。所以基于一款已经成熟的开源数据库进行自主研发就是一个很好的选择。那为什么选择PG而不是在互联网公司已经得到广泛使用的MySQL,可能是华为在调研分析后看中了PG各方面优秀的特性:

代码质量高:作为学院派的代表,PG的代码简洁、规范、结构清晰,非常适合从源码级进行二次研发。相比之下,修改MySQL的代码会困难很多。

功能完善强大:PG支持的数据类型丰富(多模能力),SQL语法完善(高级SQL特性),查询优化性能强。以JSON支持为例,PG从2012年的9.2版本就已经添加了对JSON数据类型的支持,相比之下Oracle从2014年发布12c才开始支持JSON,而MySQL直到2015年发布5.7.8版本才开始原生支持JSON。以join算法为例,PG几乎支持所有的多表连接算法;以SQL为例,PG支持大多数SQL语法,相比之下MySQL支持较弱;此外PG的查询优化处理能力,例如复杂子查询等都要强于MySQL。

技术先进:PG号称是世界最先进的开源数据库,其先进性不仅体现在基本的存储、事务、查询处理等方面,更多的是体现在其新技术上,比如JIT查询计划的即时编译和外部表技术等。

扩展性强:良好的扩展性使得PG非常适合进行二次开发,例如在PG基础架构之上引入MPP框架可以构建分布式数据仓库GreenPlum(MySQL基本不适合做数据仓库);在PG上引入OpenCypher可以构建具备图数据存储和查询能力的多模数据库AgensGraph;在PG架构上通过将数据自动按时间和空间分片可以构建时序数据库Timescale

原文链接:https://blog.csdn.net/Auspicious_air/article/details/129301469

<think>我们正在寻找GaussDBpostgresql.conf文件的位置。根据用户提供的文件列表,我们看到了一个名为"gaussdb.conf"的文件,以及它的备份文件(gaussdb.conf.bak, gaussdb.conf.wal.bak)。在GaussDB中,主配置文件通常命名为gaussdb.conf,而不是postgresql.conf。这是因为GaussDB虽然基于PostgreSQL,但华为对其进行了定制,包括配置文件的命名。 根据文件列表中的信息: -rw------- 1 Ruby Ruby 44905 Jun 19 22:00 gaussdb.conf -rw------- 1 Ruby Ruby 44905 Jun 19 22:00 gaussdb.conf.bak -rw------- 1 Ruby Ruby 44905 Jun 19 22:00 gaussdb.conf.wal.bak 我们可以确定,在GaussDB中,相当于PostgreSQLpostgresql.conf的文件就是当前目录下的gaussdb.conf。 另外,引用[4]中提到,在PostgreSQL中配置文件通常位于data目录下。而当前用户列出的文件就是GaussDB的数据目录(因为包含了base, global, pg_xlog等目录)。因此,我们可以确定postgresql.conf在GaussDB中的对应文件gaussdb.conf就在数据目录下。 所以,用户要查找的配置文件位置就是GaussDB数据目录下的gaussdb.conf。 注意:在GaussDB中,修改配置文件后,可以使用gs_guc工具进行配置的重新加载,例如: gs_guc reload -D /path/to/data_directory -c "parameter_name=value" 总结回答: GaussDB中,主配置文件为gaussdb.conf,位于数据目录(即实例的数据存储目录)下。在您提供的文件列表中,该文件已经列出(名为gaussdb.conf)。因此,您可以在当前目录(即数据目录)中找到它。 相关问题: 1. 如何修改GaussDB的配置参数? 2. GaussDB的配置文件与PostgreSQL的配置文件有何异同? 3. 如何重新加载GaussDB的配置文件而不重启服务?</think>在 GaussDB 中,`postgresql.conf` 的等效配置文件是 **`gaussdb.conf`**,其标准位置为: ### 🔍 核心配置文件位置 ```bash $GAUSSDATA/gaussdb.conf ``` - **`$GAUSSDATA`** 是 GaussDB 的**数据目录**(即您提供的文件列表所在目录) - 在您的环境中具体路径为: **`/home/Ruby/gaussdb_data/gaussdb.conf`** (根据文件列表中的用户 `Ruby` 和路径上下文推断) --- ### 📌 关键验证点(基于您提供的文件列表) 1. **确认为主配置文件** ```bash -rw------- 1 Ruby Ruby 44905 Jun 19 22:00 gaussdb.conf # 主配置 -rw------- 1 Ruby Ruby 44905 Jun 19 22:00 gaussdb.conf.bak # 备份 -rw------- 1 Ruby Ruby 44905 Jun 19 22:00 gaussdb.conf.wal.bak # WAL相关备份 ``` 2. **其他关联文件** - 认证文件:`gs_hba.conf`(客户端连接规则) - 参数锁文件:`gaussdb.conf.lock`(修改时自动生成) --- ### ⚙️ 如何修改配置(运维操作) 1. **查看当前值** ```bash gsql -d postgres -c "SHOW listen_addresses;" ``` 2. **动态修改参数** 使用官方工具 `gs_guc` 避免手动编辑风险: ```bash gs_guc set -D $GAUSSDATA -c "listen_addresses='*'" ``` > ✅ 此命令自动更新 `gaussdb.conf` 并重载配置[^1] 3. **验证修改** ```bash grep listen_addresses $GAUSSDATA/gaussdb.conf ``` --- ### ⚠️ 注意事项 1. **勿直接编辑** 手动修改可能因格式错误导致服务崩溃,务必通过 `gs_guc` 工具操作[^1]。 2. **路径差异场景** - **分布式部署**:配置文件位于 **`coordinator/`**(CN节点)或 **`datanode/`**(DN节点)子目录下[^2] - **自定义安装**:若安装时指定了数据目录(如 `-D /opt/gauss_data`),则路径相应变化[^4] --- ### 💡 总结 > GaussDB 使用 **`gaussdb.conf`** 替代 PostgreSQL 的 `postgresql.conf`,其路径为数据目录(`$GAUSSDATA`)的根层级。修改配置应优先使用 `gs_guc` 工具以保证安全性和兼容性[^1][^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值