暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分布式数据库学习Note58:OceanBase社区版中,数据库中的"统计信息"是什么?

数据库中的"统计信息"是指优化器统计信息(Optimizer Statistics),它是一个描述数据库中表和列信息的数据集合。

优化器代价模型(Optimizer Cost Model)依赖于查询中涉及到的表、列、谓词等对象的统计信息来选取计划,优化器可以利用统计信息来优化计划的选择,所以统计信息是代价模型中选取最优执行计划的关键。

在 OceanBase 数据库优化器中,统计信息以普通数据的形式存储在内部表中,并且会在本地维护统计信息的缓存,以提高优化器对统计信息的访问速度。

统计信息包含表统计信息(Table Level Statistics)和列统计信息(Column Level Statistics)两种类型。

表级统计信息

表的统计信息主要包含以下信息:

  • 表的基本信息(包括 tenant_idtable_idpartition_id 等)

  • 表的统计信息类型(信息级别分为 GLOBALPARTITION 和 SUBPARTITION

  • 表的行数

  • 表所占用的宏块数

  • 表所占用的微块数

  • 表的平均行长

  • 表的收集统计信息时间

  • 表的统计信息是否锁定

列级统计信息

列的统计信息主要包含以下信息:

  • 列的基本信息(包括 tenant_idtable_idpartition_idcolumn_id

  • 列的统计信息类型(信息级别分为 GLOBALPARTITION 和 SUBPARTITION

  • 列中不同的值的数量 NDV(Number of Distinct Values)

  • 列中 NULL 值的数量

  • 列的最大值和最小值

  • 列的采样数据量大小

  • 列的直方图的稠密度

  • 列的直方图桶个数

  • 直方图类型(频率直方图/ TopK 直方图/混合直方图)

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论