gpt4 book ai didi

database - 应用程序启动时,Mnesia disc_copies 表如何存储在 ram 中?

转载 作者:行者123 更新时间:2023-12-02 09:47:16 24 4
gpt4 key购买 nike

我有一个类型为 disc_copies 的表 A。
它在磁盘上有两个文件。

  • A.DCD - 最后修改时间 8 月 30 日
  • A.DCL - 今天(9 月 7 日)

  • 根据我的理解,A.DCL 是日志文件,A.DCD 拥有所有数据。
    今天我在 A 上做了多次操作,但是 A.DCD 保持不变,但 A.DCL 的大小增加了。
    当我的应用程序启动时,当 DCD 文件未更改时,该表如何存储在 ram 中。
    没有适当的文档,所以谁能告诉确切的过程是什么?
    即使表中没有数据,DCD 文件也会随着时间的推移变得非常大,有人能澄清一下吗?

    最佳答案

    对于一个disc_copies表,当Mnesia启动时数据被读入ETS表,所以整个表存在于RAM中。 DCD 是最新的完整快照,DCL 文件包含快照后所做的更改,因此首先加载 DCD,然后应用 DCL 条目。当您对表执行操作时,条目将附加到 DCL。当 DCL 变得足够大时,Mnesia 进行新的完整 DCD 转储并清空 DCL。
    由于所有数据在运行时都在 RAM 中,因此全表搜索之类的操作非常快,但您最终可能需要大量 RAM,并且启动时间可能会很长。

    关于database - 应用程序启动时,Mnesia disc_copies 表如何存储在 ram 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63779368/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com