Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。文章将着重说明 如何使用 Mnesia 数据库。
创建数据库:
1、设定数据库目录:
erl -mnesia dir ‘“d:/mnesia”’
2、创建数据库:
mnesia:create_schema([node()]) .
3、启动数据库:
mnesia:start() .
注:数据库创建后,以后重新启动 erlang 时要同时启动mneisa 服务:
erl -mnesia dir ‘“d:/mnesia”’ -s mnesia
创建表:
1、声明表结构:
mnesia表结构可以用record声明,以用户表 person 为例:
-record(person, {name, age, address, salary, children}).
注:-record不是shell命令,不能在 erlang shell 直接使用。有以下2种方法:
1)使用命令 rd(person, {name, age, address, salary, children}).
2)将结构保存到record.hrl 文件,使用命令 rr("record.hrl"). 引进
2、创建表:(文档)
mnesia:create_table(person, [{attributes, record_info(fields, person)}]).
注:记录的第一个属性为主键。数据表的默认类型是“set”。在一个集合(set)里,所有的记录有唯一的键,在一个包(bag)里,几条数据可能有相同的键,但是记录的内容是唯一的。如果一个不唯一的数据被存储到表中,该记录会被覆盖 。
数据库查询:
例:查询某用户(更多数据库查询例子)
q(Name) -> F = fun() -> mnesia:read({person, Name}) end,
mnesia:transaction(F).
可视化工具:
Erlang自带一个可以看Mnesia和ETS表查看器,使用tv:start()启动。
分享到:
相关推荐
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。下面的内容将着重说明 如何做 Mnesia ...
### Mnesia数据库:Erlang中的分布式数据库管理系统 #### 引言 Mnesia,作为Erlang编程语言的一部分,是一款由爱立信公司开发的分布式数据库管理系统(DBMS)。自1997年以来,Mnesia一直是Open Telecom Platform...
### Erlang Mnesia:分布式数据库管理系统 #### 一、引言与概述 Mnesia是一款由爱立信(Ericsson)开发并维护的分布式数据库管理系统(DBMS),它被设计用于支持电信应用以及其他需要持续运行和具备软实时特性的...
1.2.Mnesia.数据库管理系统(DBMS 2、开始.Mnesia 2.1.首次启动.Mnesia 2.2.一个示例 3、构建.Mnesia.数据库 3.1.定义模式 3.2.数据模型 3.3.启动.Mnesia 3.4.创建新表 4、事务和其他上下文存取 ...
Mnesia是一个分布式数据库管理系统(DBMS),适合于电信和其它需要持续运行和具备软实时特性的Erlang应用。 目 录 1 、介绍 . . .. . .. . . .. . 4 1.1 关于 Mnesia . . .. . .. . . .. . 4 1.2 Mnesia ...
Ecto支持多种数据库,如PostgreSQL、MySQL等,而ecto_mnesia就是为Mnesia数据库提供支持的适配器。 **Mnesia数据库** Mnesia是Erlang的标准数据库系统,设计用于实时系统和高并发环境。它支持记录和表的存储,提供...
在查询Mnesia数据库时,可以使用Erlang或Elixir的模式匹配功能,这提供了强大的查询能力,同时也保持了代码的简洁性。 7. **故障恢复和容错**: Mnesia通过复制数据来实现容错。当一个节点失败时,其他节点可以...
《Mnesia用户手册》是专为理解和操作Erlang编程语言中的Mnesia数据库管理系统而编写的详尽指南。Mnesia是Erlang OTP (Open Telephony Platform) 库中的一个核心组件,它是一个强大的分布式数据库系统,特别适用于...
5. **数据库集成**:既然源码包含了数据库部分,我们可以推断该服务器可能使用Erlang的数据库接口与后端数据库进行交互。Erlang提供了多种数据库连接库,如Mnesia(Erlang内置的分布式数据库)或者其他第三方库如...
本项目是一个基于Erlang的小型游戏服务器,使用了Mnesia数据库来存储游戏数据。 Mnesia是Erlang内置的一个分布式数据库管理系统,支持事务处理和实时查询,非常适合实时性要求高的游戏场景。在这个小型游戏服务器中...
* 数据库层:使用Erlang的ETS、Mnesia、MySQL、MongoDB等数据库来存储游戏数据。 游戏服务器实现 在实现游戏服务器时,我们需要考虑以下几个方面: * 玩家和NPC的进程模型:使用Erlang的轻量级进程来模拟玩家和...
“即便我已经使用Erlang多年,在编程的时候仍然需要参考《Erlang编程指南》。..., • 使用内置的Mnesia数据库和其他表存储功能。, 《Erlang编程指南》每章末尾都提供了练习题,并且由简单的示例贯穿全书。
Mnesia的错误信息处理、备份回调函数接口、作业访问回调接口和分片表哈希回调接口分别在附录中进行了详细说明,这些都是使用和维护Mnesia数据库时不可或缺的部分。 在设计电信控制系统平台时,Mnesia能够提供强大的...
Mnesia数据库对于您的可用内存而言开始变得太大了? 对于ram_copies和disc_copies ,整个表都保留在内存中,因此数据大小受可用RAM的限制。 对于disc_only_copies ,由于后端dets缘故,每个表限制为2 GB。 cachet...
Mnesia 是一个强大的分布式数据库管理系统(DBMS),专门为Erlang编程语言设计,特别适用于需要高可用性、持续运行和软实时特性的电信和其他关键业务应用。这个系统允许在多个节点间同步数据,提供了一种在分布式...
此外,Erlang OTP的Mnesia数据库系统支持分布式数据存储和事务处理,非常适合构建容错性强的系统。 总的来说,Erlang OTP 25.0 for Windows 64位是一个强大的开发工具,对于那些需要构建高可用、高性能、分布式应用...
4. **库和工具的更新**:OTP中的各种库(如Mnesia数据库、ERTS(Erlang Run-Time System)和其他并发工具)可能进行了升级,以适应新的需求和改进功能。 5. **并发与分布式系统支持**:Erlang以其轻量级进程和消息...
- **OTP(开放电信平台)**:Erlang OTP是一套库和设计原则,提供了构建可靠系统的框架,包括Mnesia数据库、Event Manager、Supervisor和GenServer等行为模块。 学习Erlang时,你需要掌握以下核心概念: - **BEAM...
编写高效的Erlang程序同时保持代码整洁易读,发现Erlang如何满足分布式系统的要求,轻松添加简单的图形用户界面,学习Erlang的跟踪机制来调试并发和分布式系统,使用内置的Mnesia数据库和其他表格存储功能。...