首批通过分布式安全可靠测评,为关键业务系统打造
如何快速获得表中某列的 NDV 值
更新时间:2026-05-15 09:06
本文查看某个列的区分度,以便合理设计复合索引中字段排序顺序。
通过函数 approx_count_distinct 对参数列去重后的行数进行计算,返回行数值,且该值是近似值,该函数可以用于进一步计算被引用的列的选择性。
与函数 COUNT(DISTINCT x) 相比,APPROX_COUNT_DISTINCT 返回的是近似值,所以计算速度极快。在处理大量级的数据时 COUNT(DISTINCT x) 经常要花费很长的时间,使用 APPROX_COUNT_DISTINCT 牺牲了少量的精确度,却换来了计算效率的极大提升。
示例:返回列 col2 不重复值的个数。
obclient> SELECT APPROX_COUNT_DISTINCT(col2) FROM tbl1;
+-----------------------------+
| APPROX_COUNT_DISTINCT(COL2) |
+-----------------------------+
| 5 |
+-----------------------------+
1 row in set
有关 APPROX_COUNT_DISTINCT 的详细介绍,参见 APPROX_COUNT_DISTINCT。
适用版本
OceanBase 数据库 V2.x 和 V3.x 版本。