开发约束 #
SphereEx-DBPlusEngine 兼容对接数据库语法,但由于分布式架构和单机存在较大的架构差异,存在 SQL 使用限制。本文将介绍数据库开发过程中的使用限制。
标识符限制 #
针对各类对象名称的限制,主要取决于底层对接数据库的限制,在 SphereEx-DBPlusEngine 端未做任何限制,可以定义任何长度的标识符。当提交的标识符下发到底层数据库上执行失败时,会将错误反馈给用户。
资源限制 #
针对资源的创建,如 Database、Table 等,SphereEx-DBPlusEngine 自身未对这部分进行限制。上述创建的资源对应的元数据将保存在治理中心及 SphereEx-DBPlusEngine 本地的内存中。如内存空间不足且元数据过多的情况下,可能会出现 OOM 问题。
语法限制 #
SphereEx-DBPlusEngine 兼容大部分数据库语法,具体参见SQL兼容性。
语法类别 | 语法子类 | 使用约束 |
---|---|---|
DDL | TABLE | 支持 |
VIEW | 支持(限分片内) | |
TRIGGER | 支持(限分片内) | |
PROCEDURE | 支持(限分片内) | |
CURSOR | 支持(限分片内) | |
DML | INSERT | 支持(部分受限) |
DELETE | 支持(部分受限) | |
UPDATE | 支持(部分受限) | |
MERGE | 支持(限分片内) | |
REPLACE | 支持 | |
DQL | JOIN ON | 支持 |
LEFT/RIGHT/FULL JOIN | 支持 | |
SEMI JOIN | 支持 | |
ANTI JOIN | 支持 | |
GROUP | 支持 | |
GROUP…HAVING | 支持 | |
SUBQUERY | 支持 | |
UNION/UNION ALL | 支持 | |
INTERSECT/MINUS | 支持 | |
SUBQUERY | 支持(限分片内) |