查询SQL执行计划(POST请求)
功能介绍
- 查询SQL执行计划。
 - 目前仅支持MySQL实例。
 - 补充GET请求,处理超长SQL。
 
URI
POST /v3/{project_id}/instances/{instance_id}/sql/explain
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        project_id  | 
      
        是  | 
      
        String  | 
      
        参数解释: 租户在某一Region下的项目ID。 获取方法请参见获取项目ID。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。  | 
     
| 
        instance_id  | 
      
        是  | 
      
        String  | 
      
        参数解释: 实例ID。标识实例的唯一标识。 约束限制: 仅支持MySQL实例。 取值范围: 只能由英文字母、数字组成,且长度为32个字符。 默认取值: 不涉及。  | 
     
请求参数
| 
        参数  | 
      
        是否必选  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|---|
| 
        db_user_id  | 
      
        否  | 
      
        String  | 
      
        参数解释: 数据库用户ID。用户使用数据库账号与数据库建立的连接ID(数据库用户ID由注册数据库用户接口创建)。 约束限制: 不涉及。 取值范围: 只能由英文字母、数字、中划线组成,且长度为36个字符的UUID。 默认取值: 不涉及。  | 
     
| 
        database  | 
      
        否  | 
      
        String  | 
      
        参数解释: 数据库名称。 约束限制: 仅支持MySQL实例的数据库。 取值范围: 不涉及。 默认取值: 不涉及。  | 
     
| 
        sql  | 
      
        否  | 
      
        String  | 
      
        参数解释: SQL语句。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。  | 
     
响应参数
状态码: 200
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        execution_plans  | 
      
        Array of ExecutionPlan objects  | 
      
        参数解释: SQL执行计划列表。 取值范围: 不涉及。  | 
     
| 
        error_message  | 
      
        String  | 
      
        参数解释: SQL执行失败时,显示执行错误信息。 取值范围: 不涉及。  | 
     
| 
        参数  | 
      
        参数类型  | 
      
        描述  | 
     
|---|---|---|
| 
        id  | 
      
        String  | 
      
        参数解释: 执行计划id。 取值范围: [0, 2^31-1],实际取决于查询。  | 
     
| 
        select_type  | 
      
        String  | 
      
        参数解释: select子句的类型。 取值范围: 不涉及。  | 
     
| 
        table  | 
      
        String  | 
      
        参数解释: 数据库表。 取值范围: 不涉及。  | 
     
| 
        partitions  | 
      
        String  | 
      
        参数解释: 查询将匹配记录的分区。 取值范围: 不涉及。  | 
     
| 
        type  | 
      
        String  | 
      
        参数解释: 访问类型。 取值范围: 不涉及。  | 
     
| 
        possible_keys  | 
      
        String  | 
      
        参数解释: 可能使用的键(索引)。 取值范围: 不涉及。  | 
     
| 
        key  | 
      
        String  | 
      
        参数解释: 实际使用的键(索引)。 取值范围: 不涉及。  | 
     
| 
        key_len  | 
      
        String  | 
      
        参数解释: 决定使用的键的长度。 取值范围: 不涉及。  | 
     
| 
        ref  | 
      
        String  | 
      
        参数解释: 使用哪个列或常数与键一起来选择行。 取值范围: 不涉及。  | 
     
| 
        rows  | 
      
        String  | 
      
        参数解释: MySQL认为它执行查询时必须检查的行数。 取值范围: 不涉及。  | 
     
| 
        filtered  | 
      
        String  | 
      
        参数解释: 按表条件过滤的表行的估计百分比。 取值范围: 不涉及。  | 
     
| 
        extra  | 
      
        String  | 
      
        参数解释: 其他信息。 取值范围: 不涉及。  | 
     
请求示例
查询SQL执行计划(POST请求)
POST https://das.cn-north-1.myhuaweicloud.com/v3/054e292c9880d4992f02c0196d3ea468/instances/da304cd5bbb944de828759bc7be3d3fein01/sql/explain
{
  "db_user_id" : "2c250598-1e3c-4d31-bc19-be1d866247e6",
  "database" : "abc",
  "sql" : "select 1"
}
 响应示例
状态码: 200
{
  "execution_plans" : [ {
    "id" : "1",
    "select_type" : "SIMPLE",
    "table" : "",
    "partitions" : "",
    "type" : "",
    "possible_keys" : "",
    "key" : "",
    "key_len" : "",
    "ref" : "",
    "rows" : "",
    "filtered" : "",
    "extra" : "No tables used"
  } ]
}
 状态码
| 
        状态码  | 
      
        描述  | 
     
|---|---|
| 
        200  | 
      
        Success.  | 
     
| 
        400  | 
      
        BadRequest.  | 
     
| 
        500  | 
      
        InternalServerError.  | 
     
错误码
请参见错误码。