Mnesia:一个节点上支持多个分块
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
Mnesia在32位系统下单个表最大只能存储4G的数据,很多情况下这显然系不够的,不过不要紧,Mnesia可以将单个表分拆成多个分块(Fragment)
创建和初始化数据库表
首先运行一个节点:werl -sname node
初始化schema
(node@notebook-4a21d6)1> Nodes=[node() | nodes()].
(node@notebook-4a21d6)2> mnesia:create_schema(Nodes).
启动节点上的Mnesia
(node@notebook-4a21d6)3> mnesia:start().
创建和初始化数据表
(node@notebook-4a21d6)4>rd(test,{key,value}).
(node@notebook-4a21d6)5> FragProps=[{node_pool,Nodes},{n_fragments,10},{n_disc_only_copies,1}].
(node@notebook-4a21d6)6> mnesia:create_table(test,[{frag_properties,FragProps},{attributes,record_info(fields,test)}]).
查看表信息
(node@notebook-4a21d6)7> mnesia:info().
(node@notebook-4a21d6)8> Write=fun() ->[mnesia:write({test,K,K}) || K<-lists:seq(1,1000)] end.
(node@notebook-4a21d6)9> mnesia:activity(sync_dirty,Write,[],mnesia_frag).