cetus/doc/cetus-constraint.md
2018-03-07 09:54:45 +08:00

78 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Cetus使用约束说明
Cetus分为读写分离和分库两个版本具有如下使用约束
## 针对两个版本
### 1.不支持批量sql语句的执行
### 2.不支持TLS
### 3.不支持多租户
### 4.单进程工作模式建议在docker容器使用
### 5.只支持linux系统
### 6.不支持客户端ctl+c操作即不支持kill query操作
### 7.set命令的有限支持不支持global级别的set命令支持部分session级别的set命令
### 8.sql语句的有限支持包括以下几点
1不支持将LAST_INSERT_ID 嵌套在INSERT或者其他的语句中
2不支持客户端的change user命令
## 针对分库版
### 1.目前分库版不支持动态扩容
### 2.目前分库版不支持二级分区
### 3.分库版最多支持64个分库建议4816个分库
### 4.分库版不支持跨库join
### 5.分库版的自增主键最好用第三方比如redis
### 6.分库版的sql限制比读写分离版的要多除了以上针对两个版本的限制还包括以下几点
1不支持AVG聚合函数
2不支持COUNT(DISTINCT)/SUM(DISTINCT)
3不支持存储过程和视图
4不支持批量sql语句的执行
5不支持having多个条件
6不支持含有any/all/some的子查询语句
7不支持load data infile
8不支持handler语法
9不支持lock tables语法
10针对分片表ORDER BY排序字段不超过8个列
11针对分片表仅支持DISCTINCT字段同时也是ORDER BY字段
12针对分片表CASE WHEN/IF不能用于DML语句中也不能用在GROUP BY后
13在结果集大于特定值时分页可能无法返回准确值
14不支持跨库的JOIN
15当Where条件中有分区列时值必须是原子值
16在做SQL查询时只支持同一个 VDB 内的关联查询,针对 sharding 表,可以使用 sharding key 的要求加上该过滤条件
17不支持服务器端 PREPARE
18使用中文列名或中文别名时必须加引号
19 order by和group by的字段必须出现在前面字段列表中