我有x行计数,但所有索引基数都比x大得多,这怎么可能?如果我理解正确,索引基数是该索引的唯一行数。
来自SHOW INDEX:
基数
索引中唯一值的估计数量。通过运行ANALYZE TABLE或myisamchk -a更新。基数是基于存储为整数的统计数据计算的,因此即使对于小表,该值也不一定精确。
基数不是索引中不同值的数量,而是索引B树中节点的计数。
例如,您创建了一个包含数字1到10的B树,您得到了5个节点和5个叶子。那么您的索引基数永远不会超过5(节点计数)。
是的,基数可以超过行数。当您在多列上建立索引时,就会发生这种情况。在这种情况下,它尝试使用组合索引中的属性构建树,并且基数将大于行数。
希望您理解了... 敬礼, UDAY。