使用限制

更新时间:

为保障集群的稳定及安全,云原生数据仓库 AnalyticDB MySQL 版有以下使用限制。

命名约束

对象

命名规则

数据库名

  • 长度不超过64个字符。

  • 以小写字符开头。

  • 可包含字母、数字以及下划线(_)。

  • 不能包含连续两个及以上的下划线(_)。

  • 不能是analyticdb,analyticdb是内置数据库。

表名

  • 长度为1~127个字符。

  • 以字母或下划线(_)开头。

  • 可包含字母、数字以及下划线(_)。

  • 不能包含引号、感叹号(!)和空格。

  • 不能是SQL保留关键字。

列名

  • 长度为1~127个字符。

  • 以字母或下划线(_)开头。

  • 可包含字母、数字以及下划线(_)。

  • 不能包含引号、感叹号(!)和空格。

  • 不能是SQL保留关键字。

索引名

长度不能超过64个字符。

账号名

  • 长度规则:

    • 3.1.9.4以下内核版本,长度为2~16。

    • 3.1.9.4及以上内核版本,长度为2~64。

  • 以小写字母开头。

  • 以小写字母或数字结尾。

  • 可包含小写字母、数字以及下划线(_)。

密码

  • 长度为8~32个字符。

  • 至少包含大写字母、小写字母、数字以及特殊字符中的三项。

  • 特殊字符为!@#¥%^&*()_+-=

集群配额

限制

默认值

说明

每个阿里云账号可购买集群数量的最大值

30

每个阿里云账号最多可购买30个集群。若您想修改该值,请提交工单联系技术支持。

每个集群可创建数据库的最大值

2048

每天集群扩容、缩容或变配的总次数

12

数仓版预留模式集群节点磁盘空间阈值

80%

超过阈值后,集群会告警。一个用户一天最多收到4次磁盘空间超过阈值的告警。

90%

超过阈值后,集群会告警,且集群会锁定,数据无法写入。一个用户一天最多收到4次磁盘空间超过阈值的告警。

数仓版弹性模式集群一组弹性IO资源的热数据量最大值

8 TB

一组弹性IO资源的热数据量超过8 TB时,集群会锁定,数据无法写入。解决办法,请参见监控

湖仓版集群一组存储预留资源的热数据量最大值

8 TB

一组存储预留资源的热数据量超过8 TB时,集群会锁定,数据无法写入。解决办法,请参见监控

企业版基础版集群一组预留资源的热数据量最大值

8 TB

一组预留资源的热数据量超过8 TB时,集群会锁定,数据无法写入。解决办法,请参见监控

每个集群可创建普通账号的最大值

256

每个集群的最大连接数

建议不超过50000

AnalyticDB for MySQL集群的连接数没有限制,但与集群的规格相关。对于小规格的集群来说,连接数过多会导致资源不足,无法承载。

每个集群中的白名单分组的最大值

50

每个白名单分组中IP个数的最大值

1000

每个集群中IP白名单个数的最大值

25000

每个集群中分区数的最大值

102400

AnalyticDB for MySQL集群中所有表的分区数之和不能超过102400。若集群中分区数超过102400,则不能再创建分区表。

您可以使用如下语句查询每个数据库中所有表的分区数:

SELECT SUM(partition_count) FROM 库名.KEPLER_META_TABLES  WHERE table_engine_name IN ("CSTORE", "XUANWU", "XUANWU_V2");

每个数仓版预留模式集群(具备1~20个节点组)中表数量的最大值

80000/(Shard个数/节点组数)

  • 扩容节点组数量可以增加预留模式集群表数量的最大值,详情请参见数仓版扩缩容

每个企业版基础版集群中内表数量的最大值

80000/(Shard个数/预留资源组数)

  • Shard个数/预留资源组数向上取整。

每个湖仓版数仓版弹性模式集群中内表数量的最大值

[80000/(Shard个数/EIU组数)]*2

每个企业版基础版湖仓版数仓版弹性模式集群中外表数量的最大值

50万张

每张表中列数的最大值

4096

表中COMMENT最大长度

1024个字符

列中COMMENT最大长度

1024个字符

每列中单个字段的最大长度

16 MB

每行写入数据的最大长度

16 MB

列默认值长度

127个字符

每个查询包含的列数的最大值

1024

WHERE条件中ITEM最大值

256

IN中条件数的最大值

2000

可以根据需求调整参数大小,SET adb_config MAX_IN_ITEMS_COUNT=3000;

参数调整过大时,SQL过于复杂会影响查询性能。

超时说明

操作

时间限制(ms)

超时说明

创建集群

600000

删除集群

300000

扩容集群

600000

创建数据库

10000

删除数据库

10000

创建表或视图

10000

删除表或视图

10000

清空表(TRUNCATE TABLE)

60000

新增列

10000

删除列

60000

更新列

60000

单次查询

1800000

单次查询的执行超时时间。超时后,系统自动终止查询。

配置以下参数,可以修改单次查询的执行超时时间。

  • 配置名:QUERY_TIMEOUT

  • Hint的形式:query_timeout

说明

检测查询超时的线程执行频率为1000ms/次,设置单次查询时间需大于1000ms,否则可能会不生效。

写入数据(INSERT INTO)

300000

  • INSERT SELECT FROM

  • INSERT UPDATE FROM

  • INSERT DELETE FROM

24*3600000

执行超时时间。超时后,系统自动终止执行。

配置以下参数,可以修改SQL语句的执行超时时间。

  • 配置名:INSERT_SELECT_TIMEOUT

  • Hint的形式:insert_select_timeout

常见问题

集群的分片数就是表的分片数吗?

是的。假设集群的分片数是32,则表示表的分片数是32。

如何查询分片数(Shard个数)

  • 在创建AnalyticDB for MySQL集群时,Shard的数量就已确定。数仓版集群可以在创建后修改集群Shard个数,而企业版、基础版及湖仓版则不支持修改。

    您可以参考下表,了解规格和Shard个数的对应关系。

    企业版基础版湖仓版数仓版弹性模式

    弹性IO资源组数(预留资源组数、存储预留资源组数)

    Shard个数

    0、1

    64

    2~3

    64

    4~7

    96

    8~15

    256

    16~31

    384

    32~63

    512

    >64

    1024

    重要

    企业版预留资源组数=预留资源节点数/3。

    基础版预留资源组数=预留资源节点数。

    湖仓版存储预留资源组数=存储预留资源/24 ACU

    数仓版预留模式

    节点组数

    Shard个数

    1

    16

    2~3

    64

    4~7

    96

    8~15

    236

    16~31

    384

    32~63

    512

    >64

    1024

  • 您也可以执行SQL查询已有集群的Shard个数:SELECT count(1) FROM information_schema.kepler_meta_shards;