跳到主要内容

2. 创建优化任务接口

描述: 使用已有的工作空间ID(workspaceId)或ddl语句和待优化的SQL语句创建优化,并返回优化结果状态及对应优化结果ID(analysisId)。

2.1. 接口URL

 Post http://${server-host}:${server-port}/api/v1/createAnalysis

2.2. 接口入参

字段类型是否必填描述
userKeyStringY激活码
workspaceStringY已创建工作空间ID或工作空间对应ddl文本
dbTypeStringNworkspace为ddl时需填写,不填默认mysql
workloadStringY执行优化的SQL
queryModeStringY执行优化的SQL对应的类型 plain_sql(普通SQL文本) / mysql_query_log(MySQL 慢日志文本) / postgresql_query_log(Postgresql日志文本)
validateFlagbooleanN控制执行分析时是否进行validate操作(只有workspaceId对应的工作空间为online模式下时才会生效)默认false
analysisNameStringN优化名称
analyzeFlagbooleanNexplain时是否使用analyze
deduplicateFlagbooleanN是否去除重复索引信息
indexOnlybooleanN是否启用覆盖索引
maxMembersForIndexOnlyIntegerN覆盖索引最大列数
maxMembersIntegerN索引最大列数
maxPerTableIntegerN全表最多索引数目
maxSpaceIntegerN索引最大占用空间
closeRewritebooleanN是否仅索引推荐
rulesArrayN规则列表(不传入使用默认规则集)
ruleCodeStringN规则名称
rewritebooleanN是否未重写规则
thresholdStringN规则阈值

入参示例

{
"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. 接口出参

字段名字段类型描述
codeint状态码
messageString描述信息
dataObject数据信息

data数据结构

字段名字段类型描述
analysisIdString优化ID
statusString优化状态

出参示例

  • 成功
{
"code": 200,
"message": "操作成功",
"data": {
"analysisId": "1730505660018876418",
"status": "success"
}
}
  • 失败
{
"code": 400,
"message": "创建分析失败",
"data": null
}