记录ID

在OrientDB中,每条记录都有一个标示自己的唯一的ID,称为Record ID或者RID。由两部分组成:

#<cluster-id>:<cluster-position>
  • <cluster-id> 簇的ID标示。
  • <cluster-position> 数据在簇中的位置。

每个数据库可以有最大32,767个簇(215)。每个簇可以处理9,223,372,036,780,000条记录(263,或者8,223,372兆)。

一个数据库最大容量是278条记录,或者302,231,454,903 兆 条记录。因为硬件资源的限制,OrientDB没做过这么大数量级的测试,但是有用户使用过十亿量级的。

加载记录

每个记录都有一个Record ID, 标示着数据库中记录的位置。当你通过RID加载记录时,速度是非常快的。

在文档和关系数据库中,数据越多,数据库响应越慢。OrientDB利用物理链接来处理记录之间的关系。当边在O(1)的时间创建之后,关系就被建立了。在关系数据库中,每次计算关系都要O(log N)的时间(外键,使用B-tree索引)。在OrientDB, 数据量的大小不会影响遍历速度,不论是一条记录还是数千亿记录。这在大数据的时代,是个非常关键的特性。

直接加载记录, 使用LOAD RECORD命令。

orientdb> LOAD RECORD #12:4

--------------------------------------------------------
 ODocument - @class: Company  @rid: #12:4  @version: 8 
-------------+------------------------------------------
        Name | Value
-------------+------------------------------------------
   addresses | [NOT LOADED: #19:159]
      salary | 0.0
   employees | 100004
          id | 4
        name | Microsoft4
 initialized | false
     salary2 | 0.0
  checkpoint | true
     created | Sat Dec 29 23:13:49 CET 2012
-------------+------------------------------------------

LOAD RECORD命令返回了记录的有效信息:

  • document类型。OrientDB支持很多类型的记录,本章节只涉及文档类型。

  • 属于类Company

  • 目前的版本是8。OrientDB使用MVCC system。每次更新一条记录,版本加1。

  • 有不同的属性类型:salarysalary2是浮点, employeesid是整型, name是字符串, initializedcheckpoint是布尔, created是日期。

  • 字段addresses显示NOT LOADED。 它是一个LINK到另外一条记录, #19:159。这是一个关系,更多关系的概念信息,参考 关系.