MySQL索引基数

3

我有x行计数,但所有索引基数都比x大得多,这怎么可能?如果我理解正确,索引基数是该索引的唯一行数。

2个回答

4

来自SHOW INDEX:

基数
索引中唯一值的估计数量。通过运行ANALYZE TABLE或myisamchk -a更新。基数是基于存储为整数的统计数据计算的,因此即使对于小表,该值也不一定精确。


0

基数不是索引中不同值的数量,而是索引B树中节点的计数。

例如,您创建了一个包含数字1到10的B树,您得到了5个节点和5个叶子。那么您的索引基数永远不会超过5(节点计数)。

是的,基数可以超过行数。当您在多列上建立索引时,就会发生这种情况。在这种情况下,它尝试使用组合索引中的属性构建树,并且基数将大于行数。

希望您理解了... 敬礼, UDAY。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接