在PolarDB中,行数评估是通过对表的统计数据、基数估计以及算子代价模型来进行估算的。

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介: 【2月更文挑战第14天】在PolarDB中,行数评估是通过对表的统计数据、基数估计以及算子代价模型来进行估算的。

2000元阿里云代金券免费领取,2核4G云服务器仅664元/3年,新老用户都有优惠,立即抢购>>>


阿里云采购季(云主机223元/3年)活动入口:请点击进入>>>,


阿里云学生服务器(9.5元/月)购买入口:请点击进入>>>,

在PolarDB中,行数评估是通过对表的统计数据、基数估计以及算子代价模型来进行估算的。

  1. 统计信息:PolarDB的统计信息以逻辑表为单位,包括了逻辑表的行数、列的NDV(Number of Distinct Values)值、列的空值信息以及等高直方图信息。当用户执行ANALYZE TABLE命令或者后台的auto analyze线程自动发起统计信息收集时,PolarDB会通过采样数据来计算统计信息。

  2. 基数估计:基数估计会利用各表、列的统计信息,估算出各算子的输入行数、选择率等,提供给算子代价模型,从而估算出查询计划的代价。例如,在Join操作中,LeftRowCount乘以RightRowCount,然后除以两者中较大的基数,可以得到Join操作的输出行数。

  3. 代价模型:PolarDB使用代价模型来描述物理执行计划的代价,通常用(CPU、Memory、IO、Net)四元组来描述。每个算子都会有自己的代价模型,而这个模型的输出(即代价)是所有算子代价的总和。最终,优化器会根据这些代价信息,选择代价最小的执行计划来执行SQL操作。

综上所述,PolarDB中的行数评估是基于统计信息和基数估计,结合代价模型综合得出的,目的是为了优化器能够选择一个性价比最高的执行计划。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
4天前
|
关系型数据库 数据库
关系型数据库的数据完整性
关系型数据库通过一系列机制和技术手段来确保数据的完整性,从而为用户提供准确、一致和可靠的数据服务。这些措施对于保障数据的质量、满足用户需求以及维护系统的稳定运行具有重要意义。
22 5
|
4天前
|
存储 关系型数据库 分布式数据库
PolarDB常见问题之PolarDB冷存数据到OSS之后恢复失败如何解决
PolarDB是阿里云推出的下一代关系型数据库,具有高性能、高可用性和弹性伸缩能力,适用于大规模数据处理场景。本汇总囊括了PolarDB使用中用户可能遭遇的一系列常见问题及解答,旨在为数据库管理员和开发者提供全面的问题指导,确保数据库平稳运行和优化使用体验。
|
4天前
|
SQL Oracle 关系型数据库
关系型数据库根据某些条件修改数据
SQL的`UPDATE`语句用于根据条件修改关系型数据库(如MySQL、PostgreSQL、Oracle)中的数据。基本语法是:`UPDATE 表名 SET 列名=新值 WHERE 条件`。例如,要将`students`表中名字为"John Doe"的学生年龄改为25,可以使用`UPDATE students SET age = 25 WHERE name = 'John Doe'`。执行`UPDATE`前需备份数据,先在测试环境验证,并考虑事务处理以确保数据安全。注意优化表结构和使用索引来提升性能。
17 3
|
4天前
|
关系型数据库 数据库 数据安全/隐私保护
关系型数据库的数据完整性保障
【5月更文挑战第9天】关系型数据库的数据完整性保障
8 1
|
2天前
|
存储 SQL Oracle
关系型数据库文件方式存储DATA FILE(数据文件)
【5月更文挑战第11天】关系型数据库文件方式存储DATA FILE(数据文件)
14 3
|
3天前
|
监控 安全 关系型数据库
关系型数据库数据完整性保障
【5月更文挑战第10天】关系型数据库数据完整性保障
14 4
|
4天前
|
关系型数据库 MySQL 分布式数据库
如何恢复PolarDB数据到特定时间点?
【5月更文挑战第13天】如何恢复PolarDB数据到特定时间点?
8 0
|
4天前
|
关系型数据库 MySQL 分布式数据库
如何备份PolarDB数据?
【5月更文挑战第13天】如何备份PolarDB数据?
8 0
|
4天前
|
关系型数据库 MySQL 分布式数据库
如何将数据从MySQL迁移到PolarDB?
【5月更文挑战第13天】如何将数据从MySQL迁移到PolarDB?
19 0
|
4天前
|
关系型数据库 分布式数据库 数据库
「活动预告」PolarDB走进青岛,邀请您一起畅游琴岛山海春韵,共话数据生态创新
由PolarDB开源社区、海信聚好看、PostgreSQL中文社区共同发起的《开源数据库沙龙》,将于青岛举办。
http://www.vxiaotou.com