Cardinality(基数)在数据库中的含义
在数据库中,Cardinality(基数) 主要用于描述数据集合中 值的唯一性,即某个列(或索引)中不同值的数量。它对索引优化和查询性能有重要影响。
1. Cardinality 的分类
在数据库领域,Cardinality 主要分为两种:
(1)数据表级别的 Cardinality
- 低基数(Low Cardinality):列中唯一值较少,重复值较多。
- 例子:
性别(gender)
只有男
和女
,这是一个低基数列。
- 例子:
- 高基数(High Cardinality):列中唯一值较多,重复值较少。
- 例子:
身份证号
、订单 ID
、手机号
,这些列几乎每行数据都是唯一的,属于高基数列。
- 例子:
(2)索引级别的 Cardinality
在 索引 级别,基数衡量的是索引列中不同值的数量,用于帮助数据库优化器选择最佳的查询计划。
- 低基数索引(Low Cardinality Index)
- 例子:
性别(gender)
建立索引,由于只有男
和女
两种值,索引基数很低,查询时可能不会使用索引。
- 例子:
- 高基数索引(High Cardinality Index)