【问题标题】:low mysql index cardinality yet data is diversemysql 索引基数低但数据多样
【发布时间】:2013-08-15 22:11:39
【问题描述】:

所以我在列卡上有一个带有索引的表

当我跑步时

SELECT COUNT(DISTINCT(card)) FROM table

它返回 490 个不同的条目

但是当我跑步时

SHOW INDEXES FROM s_edge_type_group_join;

这表明card 列上的索引卡的基数仅为1。该索引中只有该列

为什么会这样?为什么索引的基数不能反映数据的多样性?

【问题讨论】:

    标签: mysql sql indexing cardinality


    【解决方案1】:
    SHOW INDEX 返回的

    基数是一个估计,主要由优化器用于构建查询执行计划:

    http://dev.mysql.com/doc/refman/5.0/en/show-index.html

    基数

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

    根据您填充表格的方式,这些值可能已过时。并且,套用文档,在这种情况下,您应该使用 ANALYZE TABLE 来更新这些统计信息。

    【讨论】:

      猜你喜欢
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-19
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多