github.com/XiaoMi/Gaea@v1.2.5/docs/compatibility.md (about)

     1  # Gaea兼容范围
     2  
     3  ## 协议兼容性
     4  
     5  Gaea支持text协议和binary协议. 
     6  
     7  ## SQL兼容性
     8  
     9  Gaea对分表和非分表的兼容性有所不同. 非分表理论上支持所有DML语句, 部分ADMIN语句.
    10  
    11  对分表情况, Gaea本身的定位是**轻量级, 高性能**, 因此采用轻量的分表实现方式, 对一条SQL的执行, 只做字段改写和结果聚合, 不做SQL语义上的改写和多条SQL结果集的拼接计算. 
    12  
    13  **以下支持/不支持操作均指分表情况.**
    14  
    15  ### SELECT
    16  
    17  明确支持以下操作:
    18  
    19  - JOIN操作支持一个父表和多个关联子表, 以及全局表.
    20  - 聚合函数支持SUM, MAX, MIN, COUNT, 且必须出现在最外层.
    21  - WHERE语句的条件支持AND, OR, 操作符支持=, >, >=, <, <=, <=>, IN, NOT IN, LIKE, NOT LIKE.
    22  - 支持GROUP BY.
    23  
    24  明确不支持以下操作:
    25  
    26  - 不支持跨分片JOIN. JOIN中非分片键相关的条件, 只改写表名, 不计算路由, 走默认的广播路由.
    27  - JOIN USING不支持指定表名或DB名.
    28  - 表别名不允许与表名重复.
    29    - select animals.id from animals, test1.xm_order_extend as animals;
    30    - 这句SQL在MySQL中被认为是正确的, 但是gaea会明确拒绝这种操作.
    31  
    32  ### INSERT
    33  
    34  明确不支持以下操作:
    35  
    36  - 不明确指定列名的INSERT
    37  - 跨分片批量INSERT
    38  - INSERT INTO SELECT
    39   
    40  ### UPDATE
    41  
    42  明确不支持以下操作:
    43  
    44  - UPDATE多个表
    45  
    46  
    47  ## 事务兼容性
    48  
    49  - Gaea目前未实现分布式事务, 只支持单分片事务, 使用跨分片事务会报错.
    50  - 不支持SAVEPOINT, RELEASE SAVEPOINT, ROLLBACK TO SAVEPOINT **TODO**