tencent cloud

文档反馈

收集统计信息

最后更新时间:2024-12-17 16:36:53
    对于只读分析引擎而言,想要 SQL 执行结果好,则需要对表对象进行数据的基本统计信息收集。完成了统计信息收集的表,系统才会更精准的为用户执行的 SQL 进行合理的执行计划推荐。

    统计信息概述

    统计信息(Statistics)是关于数据库对象的数据特征和分布的信息。数据库可以利用统计信息来计算出更准确的计划代价,优化计划的选择。统计信息的类型包含表的行数、列的不同值个数(number of distinct,简称 NDV)、列的直方图等信息。统计信息的收集涉及对数据库对象的扫描与获取,并将所收集的统计信息存储于系统的数据字典,此外,系统还会在本地维护统计信息的缓存,以提升优化器访问统计信息的效率。同时,在收集使用统计信息时,需要注意以下两点:
    统计信息的准确性对于优化器的决策非常重要。因此,定期更新和维护统计信息是保持数据库性能的关键。
    统计信息的收集可能会对数据库的性能产生一定的影响,因为它涉及扫描和分析数据库对象。因此,在收集统计信息时需要权衡性能和统计信息的准确性。
    总之,统计信息在数据库管理系统中扮演着至关重要的角色,它们提供了关于数据库对象的关键信息,协助优化器作出更为明智的决策,进而提升查询性能及整体数据库系统的效能。

    统计信息收集

    通过 MySQL 客户端登录至只读分析引擎实例中,执行如下语句即可收集指定表对象的统计信息:
    ANALYZE TABLE <表名>;

    表的统计信息查询

    查看统计信息收集情况可使用如下命令:
    SHOW STATS_META [where db_name=<DBNAME>];
    其中 where 子句可支持 like 查询或其他表达式过滤,可根据需求查看对应 db_name 中对象的统计信息。
    查询结果的字段说明如下:
    列名
    说明
    db_name
    数据库的名字。
    table_name
    表的名字。
    partition_name
    分区的名字。
    update_time
    收集更新时间。
    modify_count
    表涉及修改的行数。
    row_count
    表的总行数。
    查询 test 库中 t1 的表统计信息收集情况示例如下:
    SHOW STATS_META WHERE db_name='test' AND table_name='t1';
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持