【问题标题】:How to effectively delete a lot of mnesia tables如何有效删除大量的mnesia表
【发布时间】:2020-08-22 11:02:32
【问题描述】:

当我需要删除节点上的大量 mnesia 表(大约 20000 个)时,我遇到了这种情况。由于这些表有一个名称模式,我可以通过这种方式收集和删除它们:

Tables = [Table || Table <- mnesia:system_info(tables), re:run(atom_to_list(Table), "<pattern>") /= nomatch],
lists:foreach(
    fun (Table) ->
        mnesia:delete_table(Table)
    end,
    Tables).

但是一个一个删除很慢,删除20k个表需要很长时间。 有什么方法可以更有效地做到这一点?

【问题讨论】:

    标签: erlang mnesia


    【解决方案1】:

    您可以生成进程。

    lists:foreach(
        fun (Table) ->
            spawn(mnesia, delete_table, [Table])
        end,
        Tables).
    

    【讨论】:

    • 它只是扩展了上述解决方案,但没有提供任何改进。
    猜你喜欢
    • 2011-07-22
    • 2015-12-20
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2018-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多