1. copy type的问题
建了一个mnesia数据库,其中一张表的copy type是disc_copies,大小有1.58G,活动监视器中可以看到Erlang虚拟机占用实际内存差不多有1.44G,虚拟内存占了2.2G
disc_copies实在不适合数据量大的表啊
而且数据量大时继续插入数据很容易出现如下警告信息
Mnesia(nonode@nohost): ** WARNING ** Mnesia is overloaded: {dump_log,
time_threshold}
2. 创建多个具有相同结构的表
在用户手册4.4节中提到这个需求,具体例子中忘了加上attributes了,修改如下
其中
-record(subscriber, {id, .....}).
3. 与SQL对应的语句
查询表中所有的记录数:
select(*) from Tab;
Mnesia中
mnesia:table_info(Tab, size)
Dets中
dets:info(Tab, size)
建了一个mnesia数据库,其中一张表的copy type是disc_copies,大小有1.58G,活动监视器中可以看到Erlang虚拟机占用实际内存差不多有1.44G,虚拟内存占了2.2G
disc_copies实在不适合数据量大的表啊
而且数据量大时继续插入数据很容易出现如下警告信息
Mnesia(nonode@nohost): ** WARNING ** Mnesia is overloaded: {dump_log,
time_threshold}
2. 创建多个具有相同结构的表
在用户手册4.4节中提到这个需求,具体例子中忘了加上attributes了,修改如下
TabDef = [{record_name, subscriber}, {attributes, record_info(fields,subscriber)}],
mnesia:create_table(my_subscriber, TabDef),
mnesia:create_table(your_subscriber, TabDef).
其中
-record(subscriber, {id, .....}).
3. 与SQL对应的语句
查询表中所有的记录数:
select(*) from Tab;
Mnesia中
mnesia:table_info(Tab, size)
Dets中
dets:info(Tab, size)
本文探讨了Mnesia数据库在处理大量数据时遇到的问题及优化方案。针对copytype为disc_copies的表型,提出了创建多个结构相同的表来分散负载的方法,并提供了具体的实现步骤。
45

被折叠的 条评论
为什么被折叠?



