新聞中心
描述
該語句用于解釋 SQL 語句的執(zhí)行計劃,可以是 ?SELECT?、?DELETE?、?INSERT?、?REPLACE? 或 ?UPDATE? 語句。

創(chuàng)新互聯(lián)企業(yè)建站,十年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運(yùn)營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于網(wǎng)站制作、網(wǎng)站建設(shè)中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。
格式
獲取表或列的信息:
{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ù)解釋
|
參數(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)- EXTENDED
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)- JSON 格式
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í)行到當(dāng)前算子輸出的行數(shù)。 |
|
COST |
執(zhí)行到當(dāng)前算子的 CPU 時間。 |
網(wǎng)頁名稱:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseEXPLAIN
文章出自:http://www.dlmjj.cn/article/cdpdsdi.html


咨詢
建站咨詢
