Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。文章收集一些常用 mnesia 使用技巧。
mnesia判断表是否存在
%% 确保已经 mnesia:start().
lists:member(Tab, mnesia:system_info(tables)).
mnesia检查数据库是否创建
case mnesia:system_info(use_dir) of
true ->
alread_created;
_ ->
mnesia:create_schema([node()])
end
改变mnesia表类型
mnesia:change_table_copy_type(person, node(), disc_copies)
遍历mnesia表(效率较高)
lists:foldl(
fun(Key, Acc) ->
[Result] = mnesia:dirty_read(Tab, Key),
[Result|Acc]
end, [], mnesia:dirty_all_keys(Tab)).
修改mnesia表结构
%% -record(person, {name, age}).
%% 改成
%% -record(person, {name, age, money}).
Fun = fun({person, Name, Age}) ->
{person, Name, Age, 0};
(X) ->
X
end,
Attr = record_info(fields, person), %%也就是 [name, age, money]
mnesia:transform_table(db_person, Fun, Attr, person).
分享到:
相关推荐
1.2.Mnesia.数据库管理系统(DBMS 2、开始.Mnesia 2.1.首次启动.Mnesia 2.2.一个示例 3、构建.Mnesia.数据库 3.1.定义模式 3.2.数据模型 3.3.启动.Mnesia 3.4.创建新表 4、事务和其他上下文存取 ...
Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。下面的内容将着重说明 如何做 Mnesia ...
erlang-mnesia-19.3.6.4-1.el7.x86_64.rpm
《Mnesia用户手册》是专为理解和操作Erlang编程语言中的Mnesia数据库管理系统而编写的详尽指南。Mnesia是Erlang OTP (Open Telephony Platform) 库中的一个核心组件,它是一个强大的分布式数据库系统,特别适用于...
Examples are included how to start an Erlang session, specify a Mnesia database directory, initialize a database schema, start Mnesia, and create tables. Initial prototyping of record definitions is ...
3. **紧密集成Erlang**:Mnesia与Erlang编程语言紧密集成,允许开发者使用Erlang函数直接操作数据库,从而简化了开发流程并提高了效率。 4. **事务处理**:Mnesia支持原子性、一致性、隔离性和持久性(ACID)事务,...
标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...
描述中提到的"erlang-18.3-1.el7.centos.x86_64.rpm"是Erlang的RPM(Red Hat Package Manager)包,这是Linux发行版中常用的软件包管理格式。RPM包使得安装、升级和卸载软件变得更加便捷,因为它能自动处理依赖关系...
对Erlang的一些常用的开发或调试工具进行了介绍
* 数据库层:使用Erlang的ETS、Mnesia、MySQL、MongoDB等数据库来存储游戏数据。 游戏服务器实现 在实现游戏服务器时,我们需要考虑以下几个方面: * 玩家和NPC的进程模型:使用Erlang的轻量级进程来模拟玩家和...
- **锁**:为了管理并发访问,Mnesia 使用锁机制来控制对数据的读写操作。有记录级锁和表级锁,以防止冲突并确保数据的一致性。 5. **查询和操作** Mnesia 提供了一套丰富的查询语言(QLC,Query List ...
4. **库和工具的更新**:OTP中的各种库(如Mnesia数据库、ERTS(Erlang Run-Time System)和其他并发工具)可能进行了升级,以适应新的需求和改进功能。 5. **并发与分布式系统支持**:Erlang以其轻量级进程和消息...
- **OTP(开放电信平台)**:Erlang OTP是一套库和设计原则,提供了构建可靠系统的框架,包括Mnesia数据库、Event Manager、Supervisor和GenServer等行为模块。 学习Erlang时,你需要掌握以下核心概念: - **BEAM...
接下来通过一个例子来展示在 Erlang 中如何使用 Mnesia 的 table fragmentation 功能。首先,需要在 Erlang 节点上创建一个 schema,然后启动 Mnesia 系统,并定义一个记录的模式。之后,创建一个表并插入一些数据,...
在Erlang中,处理大数据存储有多种方式,其中包括ETS(Erlang Term Storage)、DETS(Distributed Erlang Term Storage)、Mnesia以及MySQL等。下面将对这些存储方式进行详细解析。 1. ETS(Erlang Term Storage) ...
Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。