1.什么是Mnesia?
Mnesia在我理解里面就是一种数据库,是Erlang自带的,它支持事务,这是最重要的事务就是要么做,要么全都不做,而且事务有几个重要的概念我们需要了解,因为只有我们知道事务有什么性质,才知道什么场景该用到事务,什么场景不需要。
2.事务几个重要概念
1.原子性(Atomicity)——每个事务都是一个不可分割的单元,要么整体成功,要么整体失败。执行过程一旦出现失败,事务便会整体回滚,不会对数据库造成任何影响。
2.一致性(Consistency)——执行多个事务时,即便实际执行时间有所交叠,最终的效果应该像是各个事务按一定的顺序顺次执行一样,整个过程中数据库的状态始终保持完整和一致,这说明了事务可以用于并发的场景。
3.隔离性(Isolation)——每个事务都像是拥有一个自己的数据库副本一样,多个并发执行的事务不会相互干扰。在事务执行完毕之前任何人都观察不到事务的执行效果。
4.持久性(Durability)——事务执行成功后,它产生的变更便会生效。如果表保存在磁盘上,那么无论是重启还是崩溃都不会导致信息丢失。
3.基本操作
一个数据库无非是增删查改,本教程用于入门,所以有关并发编程,不会提及,场景是单点操作,还有安全权限等都没有,但以后会有相关更新,好了创建一个Mnesia基本可以分为以下几个步骤: