PostgreSQL 是基于规则的优化(RBO)还是基于成本的优化(CBO)?
物理优化和逻辑优化是数据库查询优化的两个方面。
物理优化:
物理优化是指优化查询的物理执行计划,即如何访问磁盘、缓存以及如何进行排序等操作,以便最大化查询性能。物理优化涉及到磁盘 I/O、内存使用、排序算法等方面,通常由数据库自动完成,不需要用户干预。
逻辑优化:
逻辑优化是指优化查询的逻辑结构,即如何重写查询语句、如何使用索引、如何处理关联查询等操作,以便提高查询的效率。逻辑优化通常涉及到规则优化、代价优化和语义优化等方面,需要依赖于查询优化器完成。
基于规则优化(RBO)和基于代价优化(CBO)都是查询优化器的两种优化方式。
RBO:
RBO 是指使用一系列的规则和启发式方法来对查询语句进行转换和简化,以便更高效地执行查询,但是不能保证查询的最优执行计划。
CBO:
CBO 是指通过计算每个可能的执行计划的代价,并选择代价最小的执行计划作为最终的执行方案,以保证查询的最优性。
CBO 通常比 RBO 更加高效,但也需要更多的计算资源。
物理优化和逻辑优化通常是同时进行的,以便尽可能地优化查询性能。
在执行物理优化时,查询优化器会选择代价最小的执行计划,并考虑磁盘 I/O、内存使用、排序算法等因素。
在执行逻辑优化时,查询优化器会选择最佳的查询计划,并考虑如何重写查询语句(RBO)、如何使用索引、如何处理关联查询(CBO) 等问题。
逻辑优化是基于规则优化(Rule-Based Optimization,RBO)和代价优化(Cost-Based Optimization,CBO)的混合优化方式。
PostgreSQL 是基于代价优化(Cost-Based Optimization,CBO)的方式进行查询优化的。查询优化器在进行查询优化时,会首先进行规则优化(Rule-Based Optimization,RBO),将查询语句进行语法转换和简化,然后再进行代价优化,生成多个可能的执行计划,并为每个执行计划计算代价,选择代价最小的执行计划作为最终的执行方案。
此外,PostgreSQL 的查询优化器还采用了逻辑优化的方式,对查询语句进行逻辑结构的优化,以便更高效地执行查询。
逻辑优化包括常量折叠、条件推导、等价变换、子查询优化和关联优化等操作。
在执行逻辑优化时,查询优化器会尝试使用规则优化和代价优化的方式,以便更好地优化查询语句。
总的来说,PostgreSQL 是基于代价优化的方式进行查询优化的,辅以规则优化和逻辑优化的方式,以便更好地优化查询语句。
推荐阅读
-
数据库的基于规则的优化(RBO)和基于成本的优化(CBO)
-
SQL 优化 - RBO(基于规则的优化)
-
Spark SQL 语句解析和基于规则的优化(RBO)简介
-
Oracle] 基于规则的优化器(RBO用于理解执行计划的基于规则的优化器 (RBO)
-
基于规则的优化器(RBO)分析 | 青年训练营笔记
-
PostgreSQL 是基于规则的优化(RBO)还是基于成本的优化(CBO)?
-
Spark - Spark SQL 中的 RBO, CBO 与 AQE 简单介绍-RBO(基于规则的优化)
-
数据库的基于规则的优化(RBO)和基于成本的优化(CBO)
-
基于成本的优化 - CBO
-
小红书大产品部架构 小红书产品概览--经过性能、稳定性、成本等多个维度的详细评估,小红书最终决定选择基于腾讯云星海自研硬件的SA2云服务器作为主力机型使用。结合其秒级的快速扩缩、超强兼容和平滑迁移能力,小红书在抵御上亿次用户访问、保证系统稳定运行的同时,也实现了成本的大幅降低。 星海SA2云服务器是基于腾讯云星海的首款自研服务器。腾讯云星海作为自研硬件品牌,通过创新的高兼容性架构、简洁可靠的自主设计,结合腾讯自身业务以及百万客户上云需求的特点,致力于为云计算时代提供安全、稳定、性能领先的基础架构产品和服务。如今,星海SA2云服务器也正在为越来越多的企业提供低成本、高效率、更安全的弹性计算服务。 以下是与小红书SRE总监陈敖翔的对话实录。 问:请您介绍一下小红书及其主要商业模式? 小红书是一个面向年轻人的生活方式平台,在这里,他们发现了向上、多元的真实世界。小红书日活超过 3500 万,月活跃用户超过 1 亿,日均笔记曝光量达 80 亿。小红书由社交平台和在线购物两大部分组成。与其他线上平台相比,小红书的内容基于真实的口碑分享,播种不止于线上,还为线下实体店赋能。 问:围绕业务发展,小红书的系统架构经历了怎样的变革和演进? 系统架构变化不大,影响最深的是资源开销。过去三年,资源开销大幅增加,同比增长约 10 倍。在此背景下,我们努力进行优化,包括很早就开始使用 K8S 进行资源调度。到 18 年年中,绝大多数服务已经完全实现了容器化。 问:目前小红书系统架构中的计算基础设施建设和布局是怎样的? 我们目前的建设方式可以简单描述为星型结构。腾讯云在上海的一个区是我们的计算中心,承载着我们的核心数据和在线业务。在外围,我们还有两个数据中心进行计算分流,同时承担灾备和线上业务双活的角色。 与其他新兴电子商务互联网公司类似,小红书的大部分计算能力主要用于线下数据分析、模型训练和在线推荐等平台。随着业务的发展,对算力的需求也在加速增长。