Mnesia是Erlang下的分布式数据库管理系统,有以下主要特性:
1) 适合于电信应用的 关系/对象 混合数据模型
2) 特别设计的DBMS查询语言,QLC
3) 持久性,数据表既可以存在磁盘也可以全部保留在主存
4) 复制,数据表可以在几个节点之间复制
5) 原子事务,一系列的表操作可以组合成一个事务
6) 存储位置透明,编程时无需知道实际存储位置
7) 非常快的实时数据检索 8) 方案(Schema)操纵函数,运行时动态重配置DBMS
Erlang (BEAM) emulator version 5.6.3 [async-threads:0]
Eshell V5.6.3 (abort with ^G)
1> mnesia:create_schema([node()]).为节点生成schema,可以指定在disc上生成一个新数据库(每个节点所用目录不同,比如默认会在usr下建立一个新目录Mnesia.nonode@nohost),只用执行一次;如果是建立内存数据库(无盘模式),就不应该填写节点
ok
2> mnesia:start().启动mnesia,每个Eshell要单独启动
ok
3> tv:start().打开图形化的表浏览工具,注意必须在mnesia:start()之后才能浏览Mnesia tables
<0.83.0>
4> mnesia:create_table(funky, []).生成一个叫funky的表
{atomic,ok}
5>
如果不想把mnesia运行在nonode@nohost节点上,应该通过erl的启动参数指定一个主节点,比如
erl -sname master1 (Window版erl:werl.exe也可以这样指定)
如果还要自动运行mnesia,可以
erl -sname master1 -s mnesia start
再执行mnesia:create_schema([node()]).一次即可