Erlang与mnesia / dets以崩溃后的启动时间慢而闻名。基本上与旧文件系统上的fsck相同。
但是我经常关机后的启动时间也很慢:在一台强大的机器上,大约需要8分钟的250 MB磁盘数据。
所以除了输入“q()”之外,我还必须在关机时做一些特别的事情。有没有办法加快启动时间?
答案 0 :(得分:3)
到目前为止我发现的事情:
mnesia:create_table()
不足以更改表类型。使用mnesia:change_table_copy_type()
我通过修复两个表上的表类型问题并将数据库大小缩小到4 MB来解决了我的问题。
答案 1 :(得分:1)
在您的主管中,在停止写入mnesia的所有进程后,您应该调用:
application:stop(mnesia)
这将正确关闭该节点上的mnesia。
答案 2 :(得分:1)
q()应该将停止信号发送到mnesia应用程序,该应用程序与应用程序:stop(mnesia)命令相同。我建议尝试使用mnesia:stop()命令很好地降低它。
答案 3 :(得分:1)
来自mnesia docs:
-mnesia no_table_loaders NUMBER
指定并行表的数量 装载机在启动时。更多的装载机可以 如果网络延迟很高,那就好了 或者如果许多表包含很少 记录。默认值为2.
如果您有许多表,这将允许您并行加载它们。但它不会加快单个表的开始时间。为此,最好的方法是使用小表,您可以通过对它们进行分段来完成。