MySQL中的基数是什么?请用简单的非技术性语言解释。
如果任何表的索引详细信息显示字段的基数为group_id
为11,那么这意味着什么?
答案 0 :(得分:114)
最大基数:所有值都是唯一的
最小基数:所有值都相同
有些列称为高基数列,因为它们具有约束(如唯一),禁止您在每一行中放置相同的值。
基数是一种影响数据聚类,排序和搜索能力的属性。因此,它是DB中查询规划者的重要衡量标准,它是一种启发式方法,可用于选择最佳方案。
答案 1 :(得分:32)
维基百科总结cardinality in SQL如下:
在SQL(结构化查询语言)中,术语基数是指{{3}的特定列(属性)中包含的uniqueness数据值} database。基数越低,列中重复的元素越多。因此,具有最低可能基数的列对于每一行将具有相同的值。 SQL数据库使用基数来帮助确定给定查询的最佳table。
答案 2 :(得分:24)
答案 3 :(得分:14)
根据Kami链接的维基百科文章,它与列值的唯一性基本相关。
为什么重要的是要考虑它会影响索引策略。由于索引的选择性不足以使用,因此只有两个可能的值索引低基数列的点数很少。
答案 4 :(得分:9)
基数越高,行的区分越好。差异化有助于导航较少的分支以获取数据。
因此,较高的统治价值意味着:
答案 5 :(得分:6)
在数学术语中,基数是一组值中的值的计数。集合只能包含唯一值。 一个例子是集合“A”。
设置“A”为:A = {1,2,3} - 该集的基数为| 3 |。
如果设置“A”包含5个值A = {10,21,33,42,57},则基数为| 5 |。
在mysql的上下文中,这意味着表列的基数是该列的唯一值的计数。如果您正在查看主键列的基数(例如table.id),那么该列的基数将告诉您该表包含多少行,因为表中的每一行都有一个唯一的ID。 您不必在该表上执行“COUNT(*)”以查明它有多少行,只需查看基数。
答案 6 :(得分:4)
以简单的方式,基数是表中的行数或元组数。列数称为" degree"
答案 7 :(得分:4)
来自manual:
基数
索引中唯一值数量的估计值。这是 通过运行ANALYZE TABLE或myisamchk -a进行更新。基数是 根据存储为整数的统计信息计算,因此值不是 即使对于小桌子也必须精确基数越高, MySQL在进行连接时使用索引的可能性越大。
Dictionary