【问题标题】:Understanding the value of cardinality at MySQL indexes了解 MySQL 索引中基数的价值
【发布时间】:2016-04-25 15:44:54
【问题描述】:

我在 MySQL 和数据库方面还很陌生,我刚刚发现并尝试了索引,但有些东西还不清楚。我检查了this question 和关于基数的答案,据我所知,基数的值代表索引列中的唯一对象。我对吗?还是只是一个近似值?

我问这个是因为我有一个带有 40.000 行的表,其中一个是索引列,称之为 column149 唯一值,但是它的基数的值为 102。这怎么可能?我尝试为column1 添加具有完全唯一值的新行,但基数值没有改变。正常吗?

【问题讨论】:

  • MySQL 有时真的不擅长数字。估计值可能相差 100 倍或更多。

标签: mysql sql phpmyadmin


【解决方案1】:

来自 MySQL 手册 - http://dev.mysql.com/doc/refman/5.7/en/show-index.html

基数

对索引中唯一值数量的估计。这是通过运行 ANALYZE TABLE 或 myisamchk -a 来更新的。基数是根据存储为整数的统计信息计算的,因此即使对于小型表,该值也不一定准确。基数越高,MySQL 在进行连接时使用索引的机会就越大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多