Help Center/ Data Admin Service/ API Reference/ APIs (in OBT)/ Cloud DBA/ Querying SQL Execution Plan (POST Request)
Updated on 2024-08-05 GMT+08:00

Querying SQL Execution Plan (POST Request)

Function

  • Query a SQL execution plan.
  • Currently, this function is supported only for MySQL DB instances.
  • This API serves as a supplement of GET requests to process overlong SQL statements.

URI

POST /v3/{project_id}/instances/{instance_id}/sql/explain

Table 1 Path parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID.

To obtain this value, see Obtaining a Project ID.

instance_id

Yes

String

Instance ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token.

X-Language

No

String

Language.

The value can be:

  • zh-cn
  • en-us
Table 3 Request body parameters

Parameter

Mandatory

Type

Description

db_user_id

No

String

Database user ID.

database

No

String

Database name.

sql

No

String

SQL statement.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

execution_plans

Array of ExecutionPlan objects

SQL execution plan list.

error_message

String

Error message displayed if the SQL execution fails.

Table 5 ExecutionPlan

Parameter

Type

Description

id

String

ID.

select_type

String

Type of the SELECT clause.

table

String

Database table.

partitions

String

Partitions from which records would be matched by the query.

type

String

Access type.

possible_keys

String

Keys (index) that can be used.

key

String

Key (index) that is used.

key_len

String

Length of the key that is used.

ref

String

Column or constant used along with the key to select rows.

rows

String

Number of rows that MySQL considers it must check when executing a query.

filtered

String

Estimated percentage of table rows that are filtered by the table condition.

extra

String

Other information.

Status code: 400

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

Minimum length: 8

Maximum length: 36

error_msg

String

Error message.

Minimum length: 2

Maximum length: 512

Status code: 500

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

Minimum length: 8

Maximum length: 36

error_msg

String

Error message.

Minimum length: 2

Maximum length: 512

Example Requests

Querying SQL execution plan (POST request)

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"
}

Example Responses

Status code: 200

{
  "execution_plans" : [ {
    "id" : "1",
    "select_type" : "SIMPLE",
    "table" : "",
    "partitions" : "",
    "type" : "",
    "possible_keys" : "",
    "key" : "",
    "key_len" : "",
    "ref" : "",
    "rows" : "",
    "filtered" : "",
    "extra" : "No tables used"
  } ]
}

Status Code

Status Code

Description

200

Success.

400

Bad request.

500

Internal server error.

Error Code

For details, see Error Codes.