2. 创建优化任务接口
描述: 使用已有的工作空间ID(workspaceId)或ddl语句和待优化的SQL语句创建优化,并返回优化结果状态及对应优化结果ID(analysisId)。
2.1. 接口URL
Post http://${server-host}:${server-port}/api/v1/createAnalysis
2.2. 接口入参
字段 | 类型 | 是否必填 | 描述 |
---|---|---|---|
userKey | String | Y | 激活码 |
workspace | String | Y | 已创建工作空间ID或工作空间对应ddl文本 |
dbType | String | N | workspace为ddl时需填写,不填默认mysql |
workload | String | Y | 执行优化的SQL |
queryMode | String | Y | 执行优化的SQL对应的类型 plain_sql(普通SQL文本) / mysql_query_log(MySQL 慢日志文本) / postgresql_query_log(Postgresql日志文本) |
validateFlag | boolean | N | 控制执行分析时是否进行validate操作(只有workspaceId对应的工作空间为online模式下时才会生效)默认false |
analysisName | String | N | 优化名称 |
analyzeFlag | boolean | N | explain时是否使用analyze |
deduplicateFlag | boolean | N | 是否去除重复索引信息 |
indexOnly | boolean | N | 是否启用覆盖索引 |
maxMembersForIndexOnly | Integer | N | 覆盖索引最大列数 |
maxMembers | Integer | N | 索引最大列数 |
maxPerTable | Integer | N | 全表最多索引数目 |
maxSpace | Integer | N | 索引最大占用空间 |
closeRewrite | boolean | N | 是否仅索引推荐 |
rules | Array | N | 规则列表(不传入使用默认规则集) |
ruleCode | String | N | 规则名称 |
rewrite | boolean | N | 是否未重写规则 |
threshold | String | N | 规则阈值 |
入参示例
{
"userKey": "CB698418-88B25371-67F15F01-XXXXXXXX",
"workspace": "CREATE TABLE `organization` (`org_id` bigint(20) NOT NULL)",
"dbType": "mysql",
"workload": "select * from organization where adm_id = 100 and adm_name = null;",
"queryMode": "plain_sql",
"validateFlag": false
"analyzeFlag": false,
"deduplicateFlag": true,
"indexOnly": true,
"maxMembersForIndexOnly": 4,
"maxMembers": 6,
"maxPerTable": 5,
"maxSpace": 1000,
"closeRewrite": false,
"analysisName": "Custom_Analysis_Name",
"rules": [
{
"ruleCode": "RuleAddOrderByNullRewrite",
"rewrite": true,
"threshold": null,
},
],
}
2.3. 接口出参
字段名 | 字段类型 | 描述 |
---|---|---|
code | int | 状态码 |
message | String | 描述信息 |
data | Object | 数据信息 |
data数据结构
字段名 | 字段类型 | 描述 |
---|---|---|
analysisId | String | 优化ID |
status | String | 优化状态 |
出参示例
- 成功
{
"code": 200,
"message": "操作成功",
"data": {
"analysisId": "1730505660018876418",
"status": "success"
}
}
- 失败
{
"code": 400,
"message": "创建分析失败",
"data": null
}