#逻辑规格
# 对象
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 用户数量 | 最大值 | 10240(包括数据库内置用户) |
| 表数量 | 最大值 | 不限制 |
| 对象名称长度 | 最大值 | 64Bytes |
| 角色数量 | 最大值 | 9640(不包括数据库内置角色) |
| 私有临时表数量 | 单会话内最大值 | 64 |
| 密码长度 | 最大值 | 127 |
# 表
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 列数 | 最大值 | 4096 |
| 记录数 | 最大值 | 不限制 |
| 行长度 | 最大值 | 行存:64512Bytes 列存:32000KB |
| 列长度 | 最大值 | 8000Bytes |
| LOB列长度 | 最大值 | 不限制 |
# 索引
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 索引列数 | 最大值 | 32 |
| 索引键值长度(含内部格式) | 最大值 | 6000Bytes |
| 索引数 | 单表最大索引数 | 255 |
| 索引层数 | 最大值 | 24 |
# 访问约束(AC)
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 列数 | 最大值 | 31 |
| 列长度 | 最大值 | 8000Bytes |
| 访问约束数 | 单表最大访问约束数 | 255 |
# undo
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| undo段数量 | 最大值 | 1024 |
| undo段数量 | 最小值 | 8 |
# 事务
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 事务数 | 最大事务数量 | 不限制 |
| 自治事务 | 最大嵌套层数 | 不限制 |
# 序列
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 序列值 | 最大值 | 1e28 - 1 |
| 序列值 | 最小值 | -1e27 + 1 |
| 序列步长 | 最大值 | 步长绝对值需要小于序列最大值与最小值的差 |
| 序列缓存个数 | 最大值 | 循环序列的缓存值个数不能超过一个循环的值的个数, 非循环序列无限制 |
| 序列缓存个数 | 最小值 | 2 |
# 数据分区
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 分区数 | 最大值 | 分区表/索引可以创建的最大分区数量 1M - 1 |
| 分区列数 | 最大值 | 16 间隔分区(interval)仅支持单列分区 |
# 语法
| 规格名称 | 规格类型 | 规格值 |
|---|---|---|
| 单个SQL语句长度 | 最大值 | 2MB - 1(包含空格和特殊字符) |
| yasql单行字符数 | 最大值 | 32000 |
| SQL语句中常量字符串输入长度 | 最大值 | 16000 |
| 字符串类型输出长度 | 最大值 | 32000 |
| SQL语句中参与Join的表数量 | 最大值 | 128 |
| 存储过程行数 | 最大值 | 64K |
| 存储过程参数个数 | 最大值 | 4095 |
| 自定义函数参数个数 | 最大值 | 4095 |
| 自定义高级包元素个数 | 最大值 | 1024 |
| 窗口函数的分区数量 | 最大值 | 1000 |
| 窗口函数的ORDER BY列数量 | 最大值 | 1000 |
| 窗口函数数量 | 最大值 | 128 |
| 最大投影列长度(包含列存拆分出来的投影列) | 最大值 | 4096 |
| 子查询 | 最大嵌套数量 | 128 |
| 并行度数量 | 最大值 | 255 |
| 物化区单行规格 | 最大值 | 63KB |
| 子查询或SELECT子句数量 | 最大值 | 170 |
| 物化区排序键长度 | 最大值 | 20K |
| 单个SQL语句执行所需stage个数 | 最大值 | 128 单个SQL语句执行最大stage个数受到MAX_PARALLEL_WORKERS配置参数的影响 参考公式:MIN(MAX_PARALLEL_WORKERS, 128) |
| 聚合函数聚合物化区 | 最大值 | 32KB 多个聚合函数如果返回的结果会如果是变成数据,则会缓存在聚合物化区,该物化区的规格限制为32K |
# 在线DDL
为了保证业务连续性,崖山数据库支持在线执行部分DDL。为了最小化对系统运行的影响,在线DDL操作也建议在业务低峰期执行,同时需关注DDL在线执行时的功能限制,请通过SQL参考了解详细的功能规格约束。
以下为OLTP业务场景使用HEAP表时,支持的在线DDL列表及在线执行时的约束说明。
| 对象类型 | 操作类型 | 在线执行时的约束 |
|---|---|---|
| 索引 | 创建索引CREATE INDEX | - 在线索引操作需在DDL语法中执行ONLINE关键字 - 列式索引和RTREE索引不允许在线创建 - 不允许为临时表在线创建索引 |
| 重建索引ALTER INDEX REBUILD | - 在线索引操作需在DDL语法中执行ONLINE关键字 - 列式索引和RTREE索引不允许在线重建 | |
| 删除索引DROP INDEX | 无限制 | |
| 重命名索引ALTER INDEX RENAME TO | 无限制 | |
| 表 | 重命名 | 无限制 |
| 删除表数据TRUNCATE TABLE | 无限制 | |
| 空间收缩ALTER TABLE SHRINK SPACE | 无限制 | |
| 开启或关闭行迁移ALTER TABLE ENABLE/DISABLE ROW MOVEMENT | 无限制 | |
| 开启或关闭附加日志ALTER TABLE ADD/DROP SUPPLEMENTAL LOG | 无限制 | |
| ALTER TABLE drop_constraint - 删除外键约束 - 删除NOT NULL约束 - 删除CHECK约束 | 无限制 | |
| 删除主键ALTER TABLE DROP PRIMARY KEY | 无限制 | |
| 添加主键列ADD PRIMARY KEY USING INDEX (CREATE INDEX ONLINE) | - 添加主键列时必须指定在线创建索引语句 - ALTER TABLE ADD PRIMARY KEY()为OFFLINE操作 | |
| 分区 | 添加或删除分区ALTER TABLE ADD/DROP PARTITION | 不支持在线添加HASH分区 |
| 修改分区规则ALTER TABLE SET | 修改分区规则时只支持INTERVAL和RANGE分区互转 | |
| TRUNCATE分区ALTER TABLE TRUNCATE PARTITION | 无限制 | |
| 列 | 添加列或删除列ALTER TABLE ADD/DROP COLUMN | - 不允许添加default值为sequence、LOB数据 - 不允许添加或删除VIRTUAL列 |
| 添加、修改或删除列默认值ALTER TABLE MODIFY COLUMN DEFAULT | 无限制 | |
| 重命名列ALTER TABLE RENAME | 无限制 | |
| 增加列类型长度或精度 | 只允许同一数据大类中增加长度或精度,不允许降低长度或精度 |

