ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
一个列唯一键(Distinct_Keys)的数量叫作基数。比如性别列,该列只有男女之分,所以这一列基数是 2。 **看test表中owner列基数大小,object_id是表的主键** ![](https://box.kancloud.cn/000d4ce78e669a8d2720b24a93a3b6fa_1057x181.png) **看test表中owner列基数的数据分布:** ![](https://box.kancloud.cn/edea500578c8083c3388838ca527c904_910x743.png) **看owner="scott"的记录占整个表所有数据的百分比** ![](https://box.kancloud.cn/c85ed1e1602d1cfe61b26a0fdb6bb6f9_1121x273.png) **查看某列的各个基数分布** 在做 SQL 优化的时候,如果怀疑列数据分布不均衡,我们可以使用 select 列名, count(*) from 表 group by 列名 order by 2 desc 。 当查询结果是返回表中 5%以内的数据时,应该走索引;当查询结果返回的是超过表中 5%的数据时,应该走全表扫描。 如果某个列基数很低,该列数据分布就会非常不均衡,由于该列数据分布不均衡,会导致 SQL 查询可能走索引,也可能走全表扫描。