搁置:选择数据库

Gil*_*tes 7 python database serialization persistence shelve

shelve 文件说:

选择使用哪个数据库包(例如dbm,gdbm或bsddb)取决于可用的接口.

那什么意识?如何确定选择哪个包?如何严格定义必须选择哪一个?最好使用哪种数据库实现?

Gil*_*tes 8

在这里找到它:http:
//www.gossamer-threads.com/lists/python/python/13891

import shelve 
import gdbm 

def gdbm_shelve(filename, flag="c"): 
    return shelve.Shelf(gdbm.open(filename, flag)) 

db = gdbm_shelve("dbfile") 
Run Code Online (Sandbox Code Playgroud)

ps
在链接页面中有人也发现了这个地方,但他的链接已经死了.


小智 5

我认为没有办法自己指定底层数据库。shelve使用anydbm,而anydbm使用whichdb模块,该模块按以下顺序尝试以下底层实现

  • 数据库哈希
  • 通用数据管理
  • 数据库管理
  • 哑巴数据库

您可以使用Shelfshelve.BsdDbShelf子类来强制使用 bsd*d*b 实现。