开发限制
更新时间:2024-02-26
为什么存在使用限制
GaiaDB-X 采用存储、计算分离架构(如下图),计算节点和存储节点可灵活扩展,解决业务海量数据和高吞吐瓶颈问题。计算节点在设计上隐藏物理数据库的拆分逻辑,用户可以像使用单机数据库一样使用 GaiaDB-X。 由于引入计算节点导致对物理数据库的SQL语法、跨分片查询产生暂时的兼容性问题。
DDL限制
- CREATE TABLE tbl_name LIKE old_tbl_name不支持拆分表。
- CREATE TABLE tbl_name SELECT statement不支持拆分表。
- 暂不支持同时 RENAME 多表。(Rename 只支持一次改单个表名)。
- 暂不支持 ALTER TABLE 修改拆分字段。
- 暂不支持跨 Schema 的 DDL(例如CREATE TABLE db_name.tbl_name (... ))。
DML限制
- 不支持 SELECT INTO OUTFILE、INTO DUMPFILE和INTO var_name。
- 不支持 STRAIGHT_JOIN和NATURAL JOIN。
- 不支持在 UPDATE SET 子句中使用子查询。
- 不支持 INSERT DELAYED语法。
- 不支持 SQL 中对于变量的引用和操作(例如SET @c=1, @d=@c+1; SELECT @c, @d)。
- 不支持在柔性事务中对广播表进行 INSERT、REPLACE、UPDATE 或 DELETE 操作。
子查询限制
- 不支持HAVING子句中的子查询,JOIN ON条件中的子查询。
- 等号操作行符的标量子查询不支持 ROW 语法。
数据库管理限制
- SHOW WARNINGS 语法不支持 LIMIT 和 COUNT 的组合。
- SHOW ERRORS 语法不支持 LIMIT 和 COUNT 的组合。
- 暂不支持 SHOW TABLE STATUS。
运算符限制
- 暂不支持‘:=’赋值运算符。
函数限制
- 暂不支持全文检索函数。
- 暂不支持 XML 函数。
- 不支持成 GTID 函数。
- 不支持企业加密函数。
关键字限制
- 暂不支持 MILLISECOND。
- 暂不支持 MICROSECOND。
其他限制:
- 暂不支持自定义数据类型或自定义函数。
- 暂不支持存储过程、触发器、游标。
- 暂不支持临时表。
- 暂不支持 BEGIN…END、LOOP…END LOOP、REPEAT…UNTIL…ENDREPEAT、WHILE…DO…END WHILE等复合语句。
- 暂不支持NOT BETWEEN…AND。
- 暂不支流程控制类语句(如IF或WHILE等)。
- 暂不支持SELECT ... INTO OUTFILE语句。
- 暂不支持mysqldump数据导出工具。
- 暂不支持LOAD DATA语句。
- 如果是 SELECT 涉及多分片,limit offset+rows 不能大于100000。
- 如果是 DELETE 或 UPDATE,不允许设置limit_row。
- 如果是 SELECT 涉及多分片, 且有GROUP BY,字段中不支持+,-,*,/. %
- 分区键名称长度不能超过100, sql中分区键的值的长度不能超过100。
- ORDER BY 后面最多8个字段。