集合(Collection)又称为表(Table),是数据库中存放记录的逻辑对象。任何一条记录属于且仅属于一个集合。集合由“<集合空间名>.<集合名>”作为唯一标示,其中集合名最大长度为 127 字节,且需为 UTF-8 编码。一个集合可以包含零条或者多条记录(上限为集合空间大小)。
在集群环境下,每个集合拥有除名称外的以下属性:
属性名 | 描述 |
---|---|
分区键(ShardingKey) | 指定集合的分区键,集合中所有的记录将分区键中指定的字段作为分区信息,分别存放在所对应的分区中 |
分区类型(ShardingType) | 指定集合的分区类型:范围分区(range)或散列分区(hash) |
分区数(Partition) | 仅当选择散列分区时填写,代表了散列分区的个数 |
写副本数(ReplSize) | 指定该集合默认的写副本数 |
数据压缩(Compressed) | 指定新集合是否开启数据压缩功能 |
压缩算法(CompressionType) | 压缩算法类型 |
主子表(IsMainCL) | 指定新集合是否为主分区集合 |
自动切分(AutoSplit) | 指定新集合是否开启自动切分功能 |
集合属组(Group) | 指定新集合将被创建到哪个复制组 |
$id 索引(AutoIndexId) | 指定新集合是否自动使用 _id 字段创建名字为"$id"的唯一索引 |
$shard 索引(EnsureShardingIndex) | 指定集合是否自动使用 ShardingKey 包含的字段创建名字为"$shard"的索引 |
严格数据模式(StrictDataMode) | 指定对该集合的操作是否开启严格数据类型模式 |
自增字段(AutoIncrement) | 自增字段 |
Note:
关于集合属性及属性的取值可参考 SdbCS.createCL()。
在分布式集群中,集合一般需要结合数据分区使用,详情可参考数据分区章节。