`
cwqcwk1
  • 浏览: 86895 次
文章分类
社区版块
存档分类
最新评论

erlang mnesia 常用使用技巧

 
阅读更多

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).

分享到:
评论

相关推荐

    erlang——Mnesia用户手册.pdf

    1.2.Mnesia.数据库管理系统(DBMS 2、开始.Mnesia 2.1.首次启动.Mnesia 2.2.一个示例 3、构建.Mnesia.数据库 3.1.定义模式 3.2.数据模型 3.3.启动.Mnesia 3.4.创建新表 4、事务和其他上下文存取 ...

    erlang mnesia 数据库基本查询

    Mnesia是一个分布式数据库管理系统,适合于电信和其它需要持续运行和具备软实时特性的Erlang应用,越来越受关注和使用,但是目前Mnesia资料却不多,很多都只有官方的用户指南。下面的内容将着重说明 如何做 Mnesia ...

    erlang-mnesia-19.3.6.4-1.el7.x86_64.rpm

    erlang-mnesia-19.3.6.4-1.el7.x86_64.rpm

    Mnesia用户手册.zip

    《Mnesia用户手册》是专为理解和操作Erlang编程语言中的Mnesia数据库管理系统而编写的详尽指南。Mnesia是Erlang OTP (Open Telephony Platform) 库中的一个核心组件,它是一个强大的分布式数据库系统,特别适用于...

    Mnesia User's Guide

    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 ...

    mnesia数据库文档

    3. **紧密集成Erlang**:Mnesia与Erlang编程语言紧密集成,允许开发者使用Erlang函数直接操作数据库,从而简化了开发流程并提高了效率。 4. **事务处理**:Mnesia支持原子性、一致性、隔离性和持久性(ACID)事务,...

    在erlang项目中使用protobuf例子

    标题中的“在erlang项目中使用protobuf例子”指的是在Erlang编程环境中使用Protocol Buffers(protobuf)这一数据序列化工具。protobuf是由Google开发的一种高效、跨语言的数据表示和序列化格式,它允许开发者定义...

    erlang-18.3-1.el7.centos.x86_64.zip

    描述中提到的"erlang-18.3-1.el7.centos.x86_64.rpm"是Erlang的RPM(Red Hat Package Manager)包,这是Linux发行版中常用的软件包管理格式。RPM包使得安装、升级和卸载软件变得更加便捷,因为它能自动处理依赖关系...

    Erlang常用工具介绍

    对Erlang的一些常用的开发或调试工具进行了介绍

    Erlang-game-server开发实践.pdf

    * 数据库层:使用Erlang的ETS、Mnesia、MySQL、MongoDB等数据库来存储游戏数据。 游戏服务器实现 在实现游戏服务器时,我们需要考虑以下几个方面: * 玩家和NPC的进程模型:使用Erlang的轻量级进程来模拟玩家和...

    Mnesia用户手册(docx版)

    - **锁**:为了管理并发访问,Mnesia 使用锁机制来控制对数据的读写操作。有记录级锁和表级锁,以防止冲突并确保数据的一致性。 5. **查询和操作** Mnesia 提供了一套丰富的查询语言(QLC,Query List ...

    erlang22最新下载包

    4. **库和工具的更新**:OTP中的各种库(如Mnesia数据库、ERTS(Erlang Run-Time System)和其他并发工具)可能进行了升级,以适应新的需求和改进功能。 5. **并发与分布式系统支持**:Erlang以其轻量级进程和消息...

    erlang_版本24.3.4.4

    - **OTP(开放电信平台)**:Erlang OTP是一套库和设计原则,提供了构建可靠系统的框架,包括Mnesia数据库、Event Manager、Supervisor和GenServer等行为模块。 学习Erlang时,你需要掌握以下核心概念: - **BEAM...

    Mnesia table fragmentation 过程及算法分析

    接下来通过一个例子来展示在 Erlang 中如何使用 Mnesia 的 table fragmentation 功能。首先,需要在 Erlang 节点上创建一个 schema,然后启动 Mnesia 系统,并定义一个记录的模式。之后,创建一个表并插入一些数据,...

    Erlang6大数据存储方式总结

    在Erlang中,处理大数据存储有多种方式,其中包括ETS(Erlang Term Storage)、DETS(Distributed Erlang Term Storage)、Mnesia以及MySQL等。下面将对这些存储方式进行详细解析。 1. ETS(Erlang Term Storage) ...

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。

Global site tag (gtag.js) - Google Analytics