我的学校书籍数据库系统将基数定义如下:
关系的基数是它包含的元组数.相反,元组的数量被称为关系的基数,并且随着元组的添加或删除而改变.高基数 - 许多元组,低基数 - 少数元组.
关于Cardinality(SQL语句)的维基百科文章,定义如下:
基数是指数据库表的特定列(属性)中包含的数据值的唯一性.基数越低,列中重复的元素越多.基数有3种类型:高基数,正常基数和低基数.
它们可能都是正确的,但我无法将这两个定义作为相关定义连接起来.一个改述将是适当的!
我们有一个庞大的表,我需要在一行上进行更新.我不知道该行的主键,但我有一个在该表中唯一的varchar值.我还拥有该表中其他一些列的值.
运行更新需要花费三分钟,我假设它正在进行全表扫描.
查看表中的索引,列上的索引的基数为零,页数为零.还有其他索引的基数等于表中的行数(几百万)和几十万的页数.
这些数字究竟意味着什么?
作为一个后续,是否会添加一个限制,以更高的基数或页数来命中索引,从而加快执行速度?或者还有什么我可以看到的指标,找到一个更适合快速找到我要改变的行.