
表统计
================

openLooKeng支持基于统计信息的查询优化。为了让查询利用这些优化，openLooKeng必须提供该查询中表的统计信息。

表统计信息由连接器提供给查询计划器。目前仅[Hive连接器](../connector/hive.md)支持统计。

表格布局
-------------

-   统计信息通过表布局向查询计划器呈现。一个表布局表示表数据的子集，并包含有关该数据的组织属性（例如排序顺序和分桶）的信息。
    
     
    
    可用于表的表布局的数量和表布局的详细信息是每个连接器特有的。以Hive连接器为例：
    

    - 非分区表只有一个表布局，表示表中的所有数据
    - 分区表拥有一系列表布局。每一组要扫描的分区代表一个表布局。openLooKeng将根据查询中的筛选谓词，尝试选择由最少数量的分区组成的表布局。

可用统计
--------------------

openLooKeng提供以下统计数据：

 

> - 对于表：
>   - **row count**：表示表布局的总行数。
> - 对于表格中的每一列：
>   - **data size**：表示需要读取的数据大小
>   - **nulls fraction**：表示空值的部分
>   - **distinct value count**：表示独特值的个数。
>   - **low value**：表示列中最小值。
>   - **high value**：表示列中最大值

 

可用于特定查询的统计集取决于所使用的连接器，也因表甚至表布局而异。例如，Hive连接器目前不提供数据大小的统计信息。

可以通过openLooKeng SQL接口使用[SHOW STATS](../sql/show-stats.md)命令查询表统计信息。Hive连接器，请参考[Hive连接器](../connector/hive.md)文档了解如何更新表的统计信息。
