? ? ? ? 今天在學習《數據庫索引設計與優化》第十一章第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)”的理解,希望能對愛學習的朋友有幫助。