簡體   English   中英

數據庫中B樹索引的空間復雜性

[英]Space complexity of a B-tree index in a database

傳統的B樹實現具有O(n)空間復雜度[ 1 ]。

所以假設在一個數據庫中(不管實現,只考慮一般情況),我有一個10GB數據表,目前索引大小是1GB,所以我可以假設如果數據庫增長到100GB,我的索引大小將是10GB?

無論實施如何,你都不能說任何話。

如果索引是純B樹,那么理論上應該是被索引的鍵的數量和大小是線性的,並且填充率有一些軟糖因子。 但是,它不太可能是純粹的B樹。 首先,它可能是B +樹或其他變體。 B +樹會在大小計算中添加一個非常小的對數項。 這種增加不大可能是重要的。 更重要的是,大多數實現都沒有實現理論B樹操作來維持填充率。 例如,刪除可以僅通過留下將由后面的插入使用的開放槽來實現。 在大量操作和運氣不好的情況下,索引表示的效率會降低,因此索引可能會變大。 如果您的10GB索引包裝緊湊且100GB是在運行一年后,它可能比您預期的要大。

直接回答你的問題 - 不,我不認為你的假設是安全的。 更多因為索引可能會隨着時間的推移而改變大小,而不是由於底層數據結構中的非線性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM