Mysql索引之-cardinality

本文探讨了MySQL中索引的Cardinality属性,解释了如何通过它评估索引的有效性。Cardinality是一个预估的不重复记录数,其准确性受到样本统计的影响。当表数据变化达到一定比例或stat_modified_counter超过特定阈值时,InnoDB存储引擎会更新Cardinality。虽然Cardinality的不准确可能导致优化器做出错误选择,但选择性(相对值)才是决定是否建立索引的关键因素。低选择性的字段即使有索引也可能导致全表扫描,而高选择性的字段建议创建索引。
摘要由CSDN通过智能技术生成

查看索引

show index from tb_name;

在这里插入图片描述
上面有一个属性Cardinality,可以通过观察它来评估索引是否合理。
它会估计索引中不重复记录,如果这个相对值很小,可能就要评估索引是否有意义。

索引相对值

再看一个模拟真实场景的表

在这里插入图片描述
然后看一下这张表的总条数

在这里插入图片描述

观察下面表格

在这里插入图片描述
列id由于是主键,通过cardinality估算出来的值/总数接近于1;而另外2个索引列,估算出来的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值