今天在学习《数据库索引设计与优化》第十一章第198页的时候遇到一个问题,即参数的文字描述与实际不符。我看的是从网络上找到的译本,许多喜欢白嫖的朋友可能也会像我一样遇到这种问题。
可以看到,上面对参数Z的描述是:Z=上一次索引重组以来增加的叶子页数。但是在下文中,有提到“一个索引重组后包含50000个叶子页(Z)”。可以看到,这两个Z所表达的含义并不一致。
究竟哪个才是正确地?
根据上下两个公式:
(1)BINOMDIST(X, Y, 1/Z, TRUE)
(2)BINOMDIST(5, 50000, 1/50000, TRUE)
很明显,下面的Z所表达的含义才是正确地。纠正过后,应该是:Z=索引重组后索引中包含的叶子页总数。
不确定这里是翻译问题,还是我手中的译本在网络上传播的过程中,这部分内容被人恶意修改过。
讲到这里,顺便解释一下为什么公式“BINOMDIST(X, Y, 1/Z, TRUE)”可以确定一个叶子页未被分裂的概率。(不了解EXCEL函数BINOMDIST的功能和原理的朋友可以先去了解一下)。
在这个公式里:
(1)Y指的是随机插入的索引行数(也可以理解为索引行随机插入的次数);
(2)1/Z指的是随机插入一个索引行,被插入到任意一个叶子页的概率(有Z个叶子页,一个索引行随机插入到任意一个叶子页的概率都是1/Z);
(3)最后结合整个公式来理解一下X的含义,“BINOMDIST(X, Y, 1/Z, TRUE)”指的是随机插入Y个索引行,有小于等于X个索引行被插入到同一个叶子页的概率,当X=索引重组之后单个叶子页可以被添加的新索引行的数量时,这个公式就可以表示一个叶子页未被分裂的概率(因为一旦X大于单个叶子页可以被添加的新索引行的数量,这个叶子页就分裂了)。
公式“BINOMDIST(X, Y, 1/Z, TRUE)”计算得到的是一个近似值,不过这个近似值依然是可被参考的(书中很多公式计算得到的结果都是近似值)。
以上是我对《数据库索引设计与优化》译本的纠错,以及本人对公式“BINOMDIST(X, Y, 1/Z, TRUE)”的理解,希望能对爱学习的朋友有帮助。