1
A
回答
3
解決方案有兩個部分。首先,您需要使用自定義鍵比較功能。
dbp->set_bt_compare(dbp, cmp_fn);
在比較函數中,使得具有相同前綴的鍵在數據庫中相鄰排列。這可能與一堆小於比較一樣簡單,因此類似0x000000000000000000000001
小於0x000000000000000000000002
。
要執行搜索,請打開遊標並使用DB_SET_RANGE
標誌執行cursor->get()
。將開始鍵設置在前綴範圍的開頭。假設您正在尋找帶有前綴0x1138
的密鑰,您可以將密鑰設置爲0x113800000000000000000000
。然後繼續撥打cursor->get()
與DB_NEXT
。當您看到一個沒有0x1138
前綴的密鑰時,就完成了。
該技術不需要掃描整個數據庫,因爲初始的DB_SET_RANGE
調用在正確的位置啓動遊標,並且記錄在樹中彼此相鄰。
相關問題
- 1. Berkeley DB文件拆分
- 2. 配置LDAP時發生Berkeley DB不匹配錯誤
- 3. Python Berkeley DB/Sqlite
- 4. 在Berkeley DB的
- 5. Berkeley DB for iPhone
- 6. Berkeley DB的GUI
- 7. GAE上的berkeley DB
- 8. Heroku上的Berkeley DB
- 9. Berkeley XML DB「where」analog
- 10. Berkeley DB SIGBUS錯誤
- 11. 分區Berkeley DB SQL API數據庫
- 12. 匹配部分
- 13. 部分匹配
- 14. 部分匹配
- 15. Berkeley DB Core和Berkeley DB之間的選擇JE
- 16. Perl部分匹配
- 17. 與部分匹配
- 18. 匹配的部分
- 19. COUNTIF部分匹配
- 20. jQuery:hasClass部分匹配
- 21. Berkeley DB:僅檢索密鑰
- 22. 的SQLite,Berkeley DB的標杆
- 23. autonicrement berkeley db,或者列表
- 24. Berkeley DB -ldb_cxx找不到
- 25. Berkeley DB和C++的問題
- 26. Berkeley DB的用法如何?
- 27. Berkeley DB環境問題
- 28. 使用Mysql同步Berkeley DB
- 29. Berkeley DB商店太慢了
- 30. Berkeley DB的平臺遷移