mnesia的transform_table可以实现事务性的表结构转换,但是它本身有两个糟糕的地方:占用内存大、速度不够快。先来看看mnesia:transform_table到底做了什么:transform_table(Tab, Fun, NewAttrs, NewRecName)
when is_function(Fun), is_list(NewAttrs), is_atom(NewRecName) ->
schema_transaction(fun() -> do_transform_table(Tab, Fun, NewAttrs, NewRecName) end);
transform_table(Tab, ignore, NewAttrs, NewRecName)
when is_list(NewAttrs), is_atom(NewRecName) ->
schema_transaction(fun() -> do_transform_table(Tab, ignore, NewAttrs, NewRecName) end);
transform_table(Tab, Fun, NewAttrs, NewRecName) ->
{aborted,{bad_type, Tab, Fun, NewAttrs, NewRecName}}
...
继续阅读
(46)