-
传统的Sqlite + orm 数据抽象 是有漏洞的, 因为 orm 只是简单的把对象和他们的方法转换成相应的sql 语句,结果上 ,它只是一种为开发者提高生产效率的形式上的手段, Realm ,另一方面,是一个对象性数据库,意味着你的对象直接映射为数据库。这种直接对数据库的访问,引导出了下一个主题, 零拷贝。
-
零拷贝:传统的从数据库读数据的方法通常会导致没必要的一些复制动作(原始数据 -》 序列化数据 -》 开发语言级别的抽象对象)。Realm 通过直接在内存中映射整个数据来避免这一点,(这点有点像 Linux的mmap) 数据结构使用B+树, 无论何时数据被查询,Realm简洁的算出偏移量,读取内存中映射的区域,返回原始数据。
-
懒加载:因为属性值代表数据库中的列的值而不是行的值, 可以当需要的时候才加载,因为列的结构 读起来更快,然而插入可能会更慢,但那在移动端是一种好的替代形式。
-
MVCC (多版本并发控制) 当使用 MVCC 数据模型的时候,Realm 也能处理并发问题,就是多个读事务可以同时进行,当写事务正在提交的时候读事务也可以完成