Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带文件存储的ZODB python数据库:为什么临时文件保留在磁盘上?_Python_Database_Python 3.x_Python 3.6_Zodb - Fatal编程技术网

带文件存储的ZODB python数据库:为什么临时文件保留在磁盘上?

带文件存储的ZODB python数据库:为什么临时文件保留在磁盘上?,python,database,python-3.x,python-3.6,zodb,Python,Database,Python 3.x,Python 3.6,Zodb,我正在Python3.6中试验ZODB数据库模块。在我的实验中,我创建了一个TreeSet(),并用数据填充它。然后我提交事务(将更改保存到磁盘)并关闭数据库 from ZODB.FileStorage import FileStorage from ZODB import DB from persistent import Persistent from BTrees.OOBTree import TreeSet import transaction if __name__ == '__ma

我正在Python3.6中试验ZODB数据库模块。在我的实验中,我创建了一个
TreeSet()
,并用数据填充它。然后我提交事务(将更改保存到磁盘)并关闭数据库

from ZODB.FileStorage import FileStorage
from ZODB import DB
from persistent import Persistent
from BTrees.OOBTree import TreeSet
import transaction

if __name__ == '__main__':
    # 1. Create ZODB database
    # ------------------------
    storage = FileStorage("C:/database_test/mydb.db")
    db = DB(storage)
    conn = db.open()
    root = conn.root()
    root.files = TreeSet()


    # 2. Fill the TreeSet
    # --------------------
    ...

    # 3. Save and close
    # ------------------
    transaction.commit()
    conn.close()
    db.close() # <- is this even necessary?
从ZODB.FileStorage导入FileStorage
从ZODB导入数据库
从持久导入持久
从BTrees.OOBTree导入树集
进口交易
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
# 1. 创建ZODB数据库
# ------------------------
存储=文件存储(“C:/database\u test/mydb.db”)
db=db(存储)
conn=db.open()
根=连接根()
root.files=TreeSet()
# 2. 填满树丛
# --------------------
...
# 3. 保存并关闭
# ------------------
commit()事务
康涅狄格州关闭

db.close()#不,它们不是真正的临时文件。它们是永久性文件,有时包含临时数据

除数据文件外,还创建了一些辅助文件。在不影响数据完整性的情况下,这些文件可能会丢失,但是丢失索引文件可能会导致启动极慢。()


不,它们不是真正的临时文件。它们是永久性文件,有时包含临时数据

除数据文件外,还创建了一些辅助文件。在不影响数据完整性的情况下,这些文件可能会丢失,但是丢失索引文件可能会导致启动极慢。()


.index
文件不是临时文件,而是持久化的索引文件。如果不存在,它将始终完全重新生成(对于较大的数据库,这将需要一点时间)

.temp
文件用于在完全提交之前生成的瞬态数据

.lock
文件用于确保没有两个进程打开该文件。它包含上次打开它的进程的PID。如果它终止了一个新进程,那么它将把它的PID写入其中


实际上还有更多的文件,它们记录在。

中。
.index
文件不是临时文件,而是持久化的索引文件。如果不存在,它将始终完全重新生成(对于较大的数据库,这将需要一点时间)

.temp
文件用于在完全提交之前生成的瞬态数据

.lock
文件用于确保没有两个进程打开该文件。它包含上次打开它的进程的PID。如果它终止了一个新进程,那么它将把它的PID写入其中


实际上还有更多的文件,它们都记录在文档中。

谢谢,先生:-)谢谢,先生:-)谢谢,非常有趣!谢谢,很有意思!