Berkeley DB的訪問方法有四種BTree、Hash、Queue、Recno
他們在DB創建時選擇,而且只能在創建時選擇。一點選定某一個訪問方法,
在使用中不能改變。
BTree 數據被存儲在一個排序的平衡樹結構中。key和value都可以是簡單數
據(如整型,字符串),也可以是復雜數據(如結構)。當有多個數據的key
相同時,可以有復本。
Hash 數據存儲在一個擴展的線性hash表中。其他的特性象BTree。
Queue 數據存儲在一個隊列中,記錄是定長的。key為一個邏輯數,不由用戶
選擇類型。在尾部插入記錄,在頭部刪除記錄和取出記錄非常的快。提供了
記錄水平縮,提高在并發下的訪問。
Recno 數據可以是定?;蚴亲冮L的記錄。其他特性象Queue。key也是一個邏輯數。
數據庫訪問方法的選擇。
根據key可否用戶定義分為BTree、Hash一組,Queue、Renco一組。
BTree與Hash之間的選擇
如果數據量不,能被放到內存中。這種情況下選擇BTree。即在小數據量的情況下
選用BTree,原因是在利用key來定為記錄時,成功的幾率大些。Hash有退步算法。
但是在大數據量的情況下,由于數據并不能都在數據庫中,要訪問磁盤,并且BTree
要維護的內部信息大于Hash,訪問磁盤的幾率大于Hash,會造成訪問的瓶頸。所以
在大數據量下選擇Hash。
Queue與Recno之間的選擇
用在多并發下最好用Queue。但是如果記錄是變長的,就只能選Recno了。在其它的情
況下,兩者沒有明顯的差別。
Berkeley DB支持從非常小的數據庫到256T的數據容量的數據庫。單個key或recode
最大可以為4G的數據。
Berkeley DB的數據庫被存儲為二進制的格式,有利于平臺的移植。
Berkeley DB支持并發的訪問,但是不能用在NSF(網絡文件系統)下。因為無法定位和
獲得數據庫的環境(在環境中設置對并發的控制)。
Berkeley DB的環境(Environments)提供了以下的功能
1 多數據庫文件(Multi-database files)。將多個數據存儲在一個物理文件中。
2 提供多線程或多進程的支持(Multi-thread and multi-process support)。
3 事務處理
4 高可用性(重復性)支持。即一個主數據庫,和多個提供只讀能力的復制數據庫
5 日志子系統。
posted on 2007-05-26 11:26
walkspeed 閱讀(3050)
評論(0) 編輯 收藏 引用 所屬分類:
C++語言 、
Berkeley DB