SequoiaDB 简介
快速入门
安装部署
数据库实例
分布式引擎
SAC 管控中心
SequoiaPerf 性能分析工具
参考手册
常见问题及解答(FAQ)
版本信息
enableSharding - 修改集合的属性开启分区属性
db.collectionspace.collection.enableSharding(<options>)
SdbCollection
该函数用于修改集合的属性开启分区属性。
options ( object,必填 )
通过 options 参数可以修改集合属性:
ShardingKey ( object,必填 ):分区键,取值为 1 或 -1,表示正向或逆向排序
格式:ShardingKey: {<字段1>: <1|-1>, [<字段2>: <1|-1>, ...]}
ShardingType ( string ):分区方式,默认为 hash 分区。其可选取值如下:
集合只能存在于一个数据组中
格式:ShardingType: "hash" | "range"
Partition
( number ):分区数,仅当选择 hash 分区时填写,代表 hash 分区的个数,默认值为 4096
格式:Partition: <分区数>
AutoSplit
( boolean ):标识是否开启自动切分功能,默认值为 false
格式:AutoSplit: true | false
EnsureShardingIndex
( boolean ):标识是否创建分区索引,默认值为 true
Note:
- 各个选项的具体使用方式见 createCL()。
- 分区集合不能修改与分区相关的属性。
- EnsureShardingIndex 和 AutoSplit 仅对当前该次操作生效,仅当修改分区属性,如 ShardingKey 等时有效。
函数执行成功时,无返回值。
函数执行失败时,将抛异常并输出错误信息。
enableSharding()
函数常见异常如下:
错误码 | 错误类型 | 可能发生的原因 | 解决办法 |
---|---|---|---|
-32 | SDB_OPTION_NOT_SUPPORT | 选项暂不支持 | 检查当前集合属性,如果是分区集合不能修改与分区相关的属性 |
当异常抛出时,可以通过 getLastErrMsg() 获取错误信息或通过 getLastError() 获取错误码。更多错误处理可以参考常见错误处理指南。
v2.10 及以上版本
创建一个普通集合,然后将该集合修改为分区集合
> db.sample.createCL('employee') > db.sample.employee.enableSharding({ShardingKey: {a: 1}, ShardingType: "hash"})
创建一个普通集合,然后将该集合修改为分区集合,并且自动切分
> db.sample.createCL('employee') > db.sample.employee.enableSharding({ShardingKey: {a: 1}, ShardingType: "hash", AutoSplit: true})