2018-03-06 15:34:44 +08:00
|
|
|
|
# Cetus性能约束说明
|
|
|
|
|
|
|
|
|
|
Cetus支持读写分离和分库两个版本,具有如下性能约束:
|
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
## 针对两个版本
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 1.不支持批量sql语句的执行
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 2.不支持TLS
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 3.不支持多租户
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 4.单进程工作模式,建议在docker容器使用
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 5.只支持linux系统
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 6.不支持客户端ctl+c操作,即不支持kill query操作
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 7.set命令的有限支持,不支持global级别的set命令,支持部分session级别的set命令
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 8.sql语句的有限支持,包括以下几点:
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
1)不支持将LAST_INSERT_ID 嵌套在INSERT或者其他的语句中
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
2)不支持客户端的change user命令
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
## 针对分库版
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 1.目前分库版不支持动态扩容
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 2.目前分库版不支持二级分区
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 3.分库版最多支持64个分库,建议4,8,16个分库
|
2018-03-06 15:34:44 +08:00
|
|
|
|
|
2018-03-06 17:45:25 +08:00
|
|
|
|
### 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的字段,必须出现在前面字段列表中
|