W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
該語句用于解釋 SQL 語句的執(zhí)行計劃,可以是 ?SELECT
?、?DELETE
?、?INSERT
?、?REPLACE
? 或 ?UPDATE
? 語句。
獲取表或列的信息:
{EXPLAIN | DESCRIBE | DESC} tbl_name [col_name | wild]
獲取SQL計劃信息:
{EXPLAIN}
[BASIC | OUTLINE | EXTENDED | EXTENDED_NOADDR | PARTITIONS | FORMAT = {TRADITIONAL| JSON}]
{SELECT statement | DELETE statement | INSERT statement | UPDATE statement | MERGE statement}
參數(shù) |
描述 |
---|---|
tbl_name |
指定表名。 |
col_name |
指定表的列名。 |
BASIC |
指定輸出計劃的基礎(chǔ)信息,如算子 ID、算子名稱、所引用的表名。 |
OUTLINE |
指定輸出的計劃信息包含 Outline 信息。 |
EXTENDED |
|
EXTENDED_NOADDR |
以簡約的方式展示附加信息。 |
PARTITIONS |
顯示分區(qū)相關(guān)信息。 |
FORMAT = {TRADITIONAL| JSON} |
指定
|
explain_type
?obclient>CREATE TABLE t1(c1 INT,c2 INT);
Query OK, 0 rows affected (0.04 sec)
obclient>CREATE TABLE t2(c1 INT,c2 INT);
Query OK, 0 rows affected (0.07 sec)
obclient>EXPLAIN SELECT * FROM t1,t2 WHERE t1.c2=t2.c2 AND t2.c1 > 4\G
*************************** 1. row ***************************
Query Plan: =======================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
---------------------------------------
|0 |HASH JOIN | |9801000 |5933109|
|1 | TABLE SCAN|t2 |10000 |6219 |
|2 | TABLE SCAN|t1 |100000 |68478 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil),
equal_conds([t1.c2 = t2.c2]), other_conds(nil)
1 - output([t2.c2], [t2.c1]), filter(nil),
access([t2.c2], [t2.c1]), partitions(p0)
2 - output([t1.c2], [t1.c1]), filter(nil),
access([t1.c2], [t1.c1]), partitions(p0)
obclient>EXPLAIN EXTENDED_NOADDR SELECT * FROM t1,t2
WHERE t1.c2=t2.c2 AND t2.c1 > 4\G
*************************** 1. row ***************************
Query Plan: =======================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
---------------------------------------
|0 |HASH JOIN | |9801000 |5933109|
|1 | TABLE SCAN|t2 |10000 |6219 |
|2 | TABLE SCAN|t1 |100000 |68478 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil),
equal_conds([t1.c2 = t2.c2]), other_conds(nil)
1 - output([t2.c2], [t2.c1]), filter(nil),
access([t2.c2], [t2.c1]), partitions(p0),
is_index_back=false,
range_key([t2.c1]), range(4 ; MAX),
range_cond([t2.c1 > 4])
2 - output([t1.c2], [t1.c1]), filter(nil),
access([t1.c2], [t1.c1]), partitions(p0),
is_index_back=false,
range_key([t1.__pk_increment], [t1.__pk_cluster_id], [t1.__pk_partition_id]), range(MIN,MIN,MIN ; MAX,MAX,MAX)always true
TRADITIONAL
?格式obclient>EXPLAIN FORMAT=TRADITIONAL SELECT * FROM t1,t2
WHERE t1.c2=t2.c2 AND t2.c1 > 4\G
*************************** 1. row ***************************
Query Plan: =======================================
|ID|OPERATOR |NAME|EST. ROWS|COST |
---------------------------------------
|0 |HASH JOIN | |9801000 |5933109|
|1 | TABLE SCAN|t2 |10000 |6219 |
|2 | TABLE SCAN|t1 |100000 |68478 |
=======================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t2.c1], [t2.c2]), filter(nil),
equal_conds([t1.c2 = t2.c2]), other_conds(nil)
1 - output([t2.c2], [t2.c1]), filter(nil),
access([t2.c2], [t2.c1]), partitions(p0)
2 - output([t1.c2], [t1.c1]), filter(nil),
access([t1.c2], [t1.c1]), partitions(p0)
obclient>EXPLAIN FORMAT=JSON SELECT * FROM t1,t2
WHERE t1.c2=t2.c2 AND t2.c1 > 4\G
*************************** 1. row ***************************
Query Plan: {
"ID":2,
"OPERATOR":"JOIN",
"NAME":"JOIN",
"EST.ROWS":9800999,
"COST":6840524,
"output": [
"T1.C1",
"T1.C2",
"T2.C1",
"T2.C2"
],
"CHILD_1": {
"ID":0,
"OPERATOR":"TABLE SCAN",
"NAME":"TABLE SCAN",
"EST.ROWS":10000,
"COST":80810,
"output": [
"T2.C2",
"T2.C1"
]
},
"CHILD_2": {
"ID":1,
"OPERATOR":"TABLE SCAN",
"NAME":"TABLE SCAN",
"EST.ROWS":100000,
"COST":64065,
"output": [
"T1.C2",
"T1.C1"
]
}
}
1 row in set (0.01 sec)
EXPLAIN 的每個輸出行提供一個表的相關(guān)信息,并且每個行包括下面的列:
列名 |
說明 |
---|---|
ID |
計劃執(zhí)行序列號。 |
OPERATOR |
執(zhí)行算子。 |
NAME |
算子所引用的表。 |
EST.ROWS |
估計執(zhí)行到當前算子輸出的行數(shù)。 |
COST |
執(zhí)行到當前算子的 CPU 時間。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: