最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中EXPLAIN語(yǔ)句及用法實(shí)例

 更新時(shí)間:2022年05月20日 12:33:33   作者:永不停轉(zhuǎn)  
我們常常用到explain這個(gè)命令來(lái)查看一個(gè)這些SQL語(yǔ)句的執(zhí)行計(jì)劃,查看該SQL語(yǔ)句有沒(méi)有使用上了索引,下面這篇文章主要給大家介紹了關(guān)于MySQL中EXPLAIN語(yǔ)句及用法的相關(guān)資料,需要的朋友可以參考下

前言

在MySQL中 DESCRIBE 和 EXPLAIN 語(yǔ)句是相同的意思。DESCRIBE 語(yǔ)句多用于獲取表結(jié)構(gòu),而 EXPLAIN 語(yǔ)句用于獲取查詢(xún)執(zhí)行計(jì)劃(用于解釋MySQL如何執(zhí)行查詢(xún)語(yǔ)句)。

通過(guò) EXPLAIN 語(yǔ)句可以幫助我們發(fā)現(xiàn)表格的哪些字段上需要建立索引,用于加速查詢(xún)。也可以使用 EXPLAIN 檢查優(yōu)化器是否使用最優(yōu)的順序來(lái)連接表。

EXPLAIN 語(yǔ)法如下:

{EXPLAIN | DESCRIBE | DESC}
    tbl_name [col_name | wild]

{EXPLAIN | DESCRIBE | DESC}
    [explain_type]
    {explainable_stmt | FOR CONNECTION connection_id}

{EXPLAIN | DESCRIBE | DESC} ANALYZE [FORMAT = TREE] select_statement

explain_type: {
    FORMAT = format_name
}

format_name: {
    TRADITIONAL
  | JSON
  | TREE
}

explainable_stmt: {
    SELECT statement
  | TABLE statement
  | DELETE statement
  | INSERT statement
  | REPLACE statement
  | UPDATE statement
}

1、獲取表結(jié)構(gòu)

DESCRIBE 是 SHOW COLUMNS 的快捷方式,也可以用于顯示View 的信息,SHOW COLUMNS提供了更多的列信息。

SHOW CREATE TABLE, SHOW TABLE STATUS, SHOW INDEX 也用于提供表信息。

DESCRIBE 默認(rèn)顯示所有列的信息,如果指定了 col_name 將只顯示該列的信息。wild 用于指定模式串,可以使用SQL通配符 % 和 _。如果指定了 wild ,將顯示與模式串匹配的列信息。如果沒(méi)有特殊字符(空格或其它特殊字符),模式串不需要使用引號(hào)括起來(lái)。

DESCRIBE City;
# 等同于
SHOW COLUMNS FROM City;

2、獲取執(zhí)行計(jì)劃信息

  • DESCRIBE 可以查詢(xún) SELECT, DELETE, INSERT, REPLACE, UPDATE 的執(zhí)行信息。MySQL 8.0.19 也可以查詢(xún) TABLE 語(yǔ)句。
  • MySQL從優(yōu)化器獲取可解釋語(yǔ)句的執(zhí)行計(jì)劃信息,包括參與的表、順序等信息。
  • 如果使用FOR CONNECTION connection_id語(yǔ)句,MySQL顯示該命名連接的執(zhí)行計(jì)劃。
  • EXPLAIN 語(yǔ)句產(chǎn)生的執(zhí)行計(jì)劃信息可以通過(guò) SHOW WARNINGS 顯示。
  • FORMAT 選項(xiàng)用于指定輸出格式,TRADITIONAL 是默認(rèn)的輸出格式,以表格形式顯示。

EXPLAIN 需要的權(quán)限與被執(zhí)行解釋語(yǔ)句的權(quán)限相同,解釋 view 語(yǔ)句時(shí)需要 SHOW VIEW 權(quán)限,EXPLAIN ... FOR CONNECTION需要 PROCESS 權(quán)限。
可以使用 SELECT STRAIGHT_JOIN 來(lái)告訴優(yōu)化器使用 SELECT 指定的連接順序。

3、使用 EXPLAIN ANALYZE 獲取信息

MySQL 8.0.18 推薦使用 EXPLAIN ANALYZE,該語(yǔ)句可以輸出語(yǔ)句的執(zhí)行時(shí)間和以下信息

  • 預(yù)計(jì)執(zhí)行時(shí)間
  • 預(yù)計(jì)返回的行數(shù)
  • 返回第一行的時(shí)間
  • 迭代器的執(zhí)行時(shí)間,單位毫秒
  • 迭代器返回的行數(shù)
  • 執(zhí)行循環(huán)的次數(shù)

查詢(xún)信息以 TREE 的形式輸出,每個(gè)節(jié)點(diǎn)代表一個(gè)迭代器。EXPLAIN ANALYZE 可以用于 SELECT 語(yǔ)句,以及多表的 UPDATE 和 DELETE 語(yǔ)句,MySQL 8.0.19 以后也可以用于 TABLE 語(yǔ)句。EXPLAIN ANALYZE 不能使用 FOR CONNECTION 。

MySQL 8.0.20 以后可以通過(guò) KILL QUERY 或 CTRL-C 終止該語(yǔ)句的執(zhí)行。

mysql> EXPLAIN ANALYZE SELECT * FROM t1 JOIN t2 ON (t1.c1 = t2.c2)\G
*************************** 1. row ***************************
EXPLAIN: -> Inner hash join (t2.c2 = t1.c1)  (cost=4.70 rows=6)
(actual time=0.032..0.035 rows=6 loops=1)
   -> Table scan on t2  (cost=0.06 rows=6)
(actual time=0.003..0.005 rows=6 loops=1)
   -> Hash
       -> Table scan on t1  (cost=0.85 rows=6)
(actual time=0.018..0.022 rows=6 loops=1)

mysql> EXPLAIN ANALYZE SELECT * FROM t3 WHERE i > 8\G
*************************** 1. row ***************************
EXPLAIN: -> Filter: (t3.i > 8)  (cost=1.75 rows=5)
(actual time=0.019..0.021 rows=6 loops=1)
   -> Table scan on t3  (cost=1.75 rows=15)
(actual time=0.017..0.019 rows=15 loops=1)

mysql> EXPLAIN ANALYZE SELECT * FROM t3 WHERE pk > 17\G
*************************** 1. row ***************************
EXPLAIN: -> Filter: (t3.pk > 17)  (cost=1.26 rows=5)
(actual time=0.013..0.016 rows=5 loops=1)
   -> Index range scan on t3 using PRIMARY  (cost=1.26 rows=5)
(actual time=0.012..0.014 rows=5 loops=1)

總結(jié) 

到此這篇關(guān)于MySQL中EXPLAIN語(yǔ)句及用法的文章就介紹到這了,更多相關(guān)MySQL EXPLAIN語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL中WITH?AS語(yǔ)句的使用方法舉例

    MySQL中WITH?AS語(yǔ)句的使用方法舉例

    在MySQL中WITH AS語(yǔ)法用于創(chuàng)建一個(gè)臨時(shí)的命名查詢(xún)(也稱(chēng)為子查詢(xún)),這些子查詢(xún)可以在后續(xù)的查詢(xún)中引用,從而簡(jiǎn)化查詢(xún)語(yǔ)句的編寫(xiě),這篇文章主要給大家介紹了關(guān)于MySQL中WITH?AS語(yǔ)句的使用方法,需要的朋友可以參考下
    2024-06-06
  • 在Ubuntu或Debian系統(tǒng)的服務(wù)器上卸載MySQL的方法

    在Ubuntu或Debian系統(tǒng)的服務(wù)器上卸載MySQL的方法

    這篇文章主要介紹了在Ubuntu或Debian系統(tǒng)的服務(wù)器上卸載MySQL的方法,適用于Debian系的Linux系統(tǒng),需要的朋友可以參考下
    2015-06-06
  • Window中MySQL繞過(guò)密碼登錄的底層原理詳解

    Window中MySQL繞過(guò)密碼登錄的底層原理詳解

    在 MySQL 中,root 用戶(hù)的密碼存儲(chǔ)和認(rèn)證機(jī)制隨著版本的升級(jí)發(fā)生了變化,繞過(guò)密碼登錄主要依賴(lài)于 --skip-grant-tables 選項(xiàng),本文將詳細(xì)分析 MySQL 繞過(guò)密碼的底層原理,并解釋為什么某些操作在 --skip-grant-tables 模式下無(wú)效,以及如何正確生效修改
    2025-02-02
  • mysql獲取字符串長(zhǎng)度函數(shù)(CHAR_LENGTH)

    mysql獲取字符串長(zhǎng)度函數(shù)(CHAR_LENGTH)

    本文介紹一下關(guān)于mysql獲取字符串長(zhǎng)度的方法,希望此教程對(duì)各位同學(xué)會(huì)有所幫助哦。
    2013-11-11
  • 解決MySQL啟動(dòng)常見(jiàn)錯(cuò)誤:ERROR 2002(HY000) Can‘t connect to local MySQL server through socket‘tmp問(wèn)題

    解決MySQL啟動(dòng)常見(jiàn)錯(cuò)誤:ERROR 2002(HY000) Can‘t connect

    這篇文章主要介紹了解決MySQL啟動(dòng)常見(jiàn)錯(cuò)誤:ERROR 2002(HY000) Can‘t connect to local MySQL server through socket‘tmp問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • centos7.2離線(xiàn)安裝mysql5.7.18.tar.gz

    centos7.2離線(xiàn)安裝mysql5.7.18.tar.gz

    這篇文章主要為大家詳細(xì)介紹了centos7.2離線(xiàn)安裝mysql5.7.18.tar.gz,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • MySQL存儲(chǔ)過(guò)程參數(shù)的用法及說(shuō)明

    MySQL存儲(chǔ)過(guò)程參數(shù)的用法及說(shuō)明

    這篇文章主要介紹了MySQL存儲(chǔ)過(guò)程參數(shù)的用法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • MySQL查詢(xún)表中重復(fù)數(shù)據(jù)的實(shí)現(xiàn)

    MySQL查詢(xún)表中重復(fù)數(shù)據(jù)的實(shí)現(xiàn)

    在數(shù)據(jù)庫(kù)中,我們經(jīng)常需要查詢(xún)重復(fù)字段來(lái)確保數(shù)據(jù)的準(zhǔn)確性,如果數(shù)據(jù)中有重復(fù)字段,則可能會(huì)導(dǎo)致查詢(xún)結(jié)果錯(cuò)誤,本文就想詳細(xì)的介紹了MySQL查詢(xún)表中重復(fù)數(shù)據(jù),感興趣的可以了解一下
    2023-08-08
  • Sphinx/MySQL 協(xié)議支持與SphinxQL應(yīng)用實(shí)例

    Sphinx/MySQL 協(xié)議支持與SphinxQL應(yīng)用實(shí)例

    Sphinx/MySQL 協(xié)議支持與SphinxQL應(yīng)用例子,供大家學(xué)習(xí)參考
    2013-02-02
  • 數(shù)據(jù)庫(kù)中笛卡爾積定義、生成與避免策略實(shí)踐方法

    數(shù)據(jù)庫(kù)中笛卡爾積定義、生成與避免策略實(shí)踐方法

    笛卡爾積是指兩個(gè)集合中的每個(gè)元素都與另一個(gè)集合中的每個(gè)元素組合形成的所有元素的集合,這篇文章主要給大家介紹了關(guān)于數(shù)據(jù)庫(kù)中笛卡爾積定義、生成與避免策略實(shí)踐的相關(guān)資料,需要的朋友可以參考下
    2024-05-05

最新評(píng)論

灵台县| 旅游| 潢川县| 三台县| 高碑店市| 土默特左旗| 凤台县| 读书| 涿州市| 建平县| 崇左市| 盐亭县| 正蓝旗| 西青区| 永年县| 邢台市| 普安县| 遂昌县| 西和县| 麻江县| 堆龙德庆县| 郧西县| 台东市| 黄大仙区| 河西区| 同仁县| 祁东县| 青州市| 蛟河市| 灌云县| 彰化县| 秦安县| 嘉义县| 文水县| 进贤县| 保康县| 满洲里市| 建始县| 涿鹿县| 长治市| 大渡口区|