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

mysql explain的用法(使用explain優(yōu)化查詢語(yǔ)句)

 更新時(shí)間:2017年01月09日 22:42:29   投稿:mdxy-dxy  
mysql explain可以幫助你檢查索引和更好的優(yōu)化查詢語(yǔ)句,今天特地學(xué)習(xí)了下mysql explain的用法,需要的朋友可以參考下

首先我來(lái)給一個(gè)簡(jiǎn)單的例子,然后再來(lái)解釋explain列的信息。

表一:catefory 文章分類表:

CREATE TABLE IF NOT EXISTS `category` ( 
 `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT, 
 `name` varchar(50) NOT NULL DEFAULT '', 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM 
INSERT INTO `test`.`category` VALUES (NULL , '分類1'); 
INSERT INTO `test`.`category` VALUES (NULL , '分類2'); 
INSERT INTO `test`.`category` VALUES (NULL , '分類3');

表二:article文章表:

CREATE TABLE IF NOT EXISTS `article` (
 `aid` int(11) NOT NULL,
 `cid` int(11) NOT NULL,
 `content` text NOT NULL,
 PRIMARY KEY (`aid`),
 KEY `cid` (`cid`)
) ENGINE=MyISAM
INSERT INTO `test`.`article` (`aid`, `cid`, `content`) VALUES ('', '7', '腳本之家(jb51.net)教程');

執(zhí)行explain:

EXPLAIN SELECT name, content
FROM category, article
WHERE category.id = article.cid

得到結(jié)果:

EXPLAIN列的解釋:

id:選定的執(zhí)行計(jì)劃中查詢的序列號(hào)。表示查詢中執(zhí)行select子句或操作表的順序,id值越大優(yōu)先級(jí)越高,越先被執(zhí)行。id相同,執(zhí)行順序由上至下。

select_type:查詢類型 說(shuō)明

1、SIMPLE:簡(jiǎn)單的select查詢,不使用union及子查詢
2、PRIMARY:最外層的select查詢
3、UNION:UNION中的第二個(gè)或隨后的select查詢,不依賴于外部查詢的結(jié)果集
4、DEPENDENT UNION:UNION中的第二個(gè)或隨后的select查詢,依賴于外部查詢的結(jié)果集
5、UNION RESULT: UNION查詢的結(jié)果集SUBQUERY子查詢中的第一個(gè)select查詢,不依賴于外部查詢的結(jié)果集
6、DEPENDENT SUBQUERY:子查詢中的第一個(gè)select查詢,依賴于外部查詢的結(jié)果集DERIVED用于from子句里有子查詢的情況。
MySQL會(huì)遞歸執(zhí)行這些子查詢,把結(jié)果放在臨時(shí)表里。
7、UNCACHEABLE SUBQUERY:結(jié)果集不能被緩存的子查詢,必須重新為外層查詢的每一行進(jìn)行評(píng)估
8、UNCACHEABLE UNION:UNION中的第二個(gè)或隨后的select查詢,屬于不可緩存的子查詢

table:顯示這一行的數(shù)據(jù)是關(guān)于哪張表的
type:這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為const、eq_reg、ref、range、index和ALL
all: full table scan ;mysql將遍歷全表以找到匹配的行;
index : index scan; index 和 all的區(qū)別在于index類型只遍歷索引;
range:索引范圍掃描,對(duì)索引的掃描開(kāi)始于某一點(diǎn),返回匹配值的行,常見(jiàn)與between ,< ,>等查詢;
ref:非唯一性索引掃描,返回匹配某個(gè)單獨(dú)值的所有行,常見(jiàn)于使用非唯一索引即唯一索引的非唯一前綴進(jìn)行查找;
eq_ref:唯一性索引掃描,對(duì)于每個(gè)索引鍵,表中只有一條記錄與之匹配,常用于主鍵或者唯一索引掃描;
const,system:當(dāng)mysql對(duì)某查詢某部分進(jìn)行優(yōu)化,并轉(zhuǎn)為一個(gè)常量時(shí),使用這些訪問(wèn)類型。如果將主鍵置于where列表中,mysql就能將該查詢轉(zhuǎn)化為一個(gè)常量。
possible_keys:顯示可能應(yīng)用在這張表中的索引。如果為空,沒(méi)有可能的索引??梢詾橄嚓P(guān)的域從WHERE語(yǔ)句中選擇一個(gè)合適的語(yǔ)句
key: 實(shí)際使用的索引。如果為NULL,則沒(méi)有使用索引。很少的情況下,MYSQL會(huì)選擇優(yōu)化不足的索引。這種情況下,可以在SELECT語(yǔ)句中使用USE INDEX(indexname)來(lái)強(qiáng)制使用一個(gè)索引或者用IGNORE INDEX(indexname)來(lái)強(qiáng)制MYSQL忽略索引
key_len:使用的索引的長(zhǎng)度。在不損失精確性的情況下,長(zhǎng)度越短越好
ref:顯示索引的哪一列被使用了,如果可能的話,是一個(gè)常數(shù)
rows:MYSQL認(rèn)為必須檢查的用來(lái)返回請(qǐng)求數(shù)據(jù)的行數(shù)
Extra:關(guān)于MYSQL如何解析查詢的額外信息。將在表4.3中討論,但這里可以看到的壞的例子是Using temporary和Using filesort,意思MYSQL根本不能使用索引,結(jié)果是檢索會(huì)很慢。
因?yàn)檎嬲膬?yōu)化會(huì)考慮到大數(shù)據(jù),我會(huì)在后面寫(xiě)更詳細(xì)的優(yōu)化教程,今天累了!分享一個(gè)詳細(xì)的mysql explain語(yǔ)法及使用教程(Mysql_Explain_語(yǔ)法詳細(xì)解析.pdf)!

相關(guān)文章

  • mysql多表聯(lián)合查詢操作實(shí)例分析

    mysql多表聯(lián)合查詢操作實(shí)例分析

    這篇文章主要介紹了mysql多表聯(lián)合查詢操作,結(jié)合實(shí)例形式分析了mysql多表聯(lián)合查詢的語(yǔ)法、功能、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2019-04-04
  • MySQL?中這么多索引該怎么選擇

    MySQL?中這么多索引該怎么選擇

    這篇文章主要介紹了MySQL?中這么多索引該怎么選擇,索引的本質(zhì)是存儲(chǔ)引擎用于快速查詢記錄的一種數(shù)據(jù)結(jié)構(gòu)。特別是數(shù)據(jù)表中數(shù)據(jù)特別多的時(shí)候,索引對(duì)于數(shù)據(jù)庫(kù)的性能就愈發(fā)重要,下文詳細(xì)相關(guān)內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-09-09
  • 關(guān)于MySQL索引的幾點(diǎn)值得注意的事項(xiàng)

    關(guān)于MySQL索引的幾點(diǎn)值得注意的事項(xiàng)

    索引對(duì)查詢的速度有著至關(guān)重要的影響,MySQL索引的建立對(duì)于MySQL的高效運(yùn)行是很重要的
    2014-07-07
  • 解決mysql報(bào)錯(cuò):Data?source?rejected?establishment?of?connection,?message?from?server:?\"Too?many?connectio

    解決mysql報(bào)錯(cuò):Data?source?rejected?establishment?of?connect

    這篇文章主要給大家介紹了關(guān)于如何解決mysql報(bào)錯(cuò):Data?source?rejected?establishment?of?connection,?message?from?server:?\"Too?many?connectio的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • mysql釋放表空間的方法示例

    mysql釋放表空間的方法示例

    本文主要介紹了mysql釋放表空間的方法示例,可以使用OPTIMIZE TABLE命令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • 如何創(chuàng)建一個(gè)創(chuàng)建MySQL數(shù)據(jù)庫(kù)中的datetime類型

    如何創(chuàng)建一個(gè)創(chuàng)建MySQL數(shù)據(jù)庫(kù)中的datetime類型

    這篇文章主要介紹了如何創(chuàng)建一個(gè)創(chuàng)建MySQL數(shù)據(jù)庫(kù)中的datetime類型,創(chuàng)建一個(gè)datetime類型的方法以及create domain 和create type的用法和區(qū)別,需要的朋友可以參考一下
    2022-03-03
  • Linux虛擬機(jī)下mysql 5.7安裝配置方法圖文教程

    Linux虛擬機(jī)下mysql 5.7安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了Linux虛擬機(jī)下mysql 5.7安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL中字段的實(shí)際長(zhǎng)度的實(shí)現(xiàn)示例代碼

    MySQL中字段的實(shí)際長(zhǎng)度的實(shí)現(xiàn)示例代碼

    MySQL字段的存儲(chǔ)長(zhǎng)度不僅取決于數(shù)據(jù)類型,還受字符編碼和存儲(chǔ)內(nèi)容的影響,CHAR和VARCHAR字段可以使用LENGTH()和CHAR_LENGTH()函數(shù)獲取長(zhǎng)度信息,下面就來(lái)具體介紹一下
    2024-09-09
  • MySQL中的回表和索引覆蓋示例詳解

    MySQL中的回表和索引覆蓋示例詳解

    索引覆蓋是一種避免回表查詢的優(yōu)化策略,具體的做法就是將要查詢的數(shù)據(jù)作為索引列建立普通索,下面這篇文章主要給大家介紹了關(guān)于MySQL中回表和索引覆蓋的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 分享20個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的最佳實(shí)踐

    分享20個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)的最佳實(shí)踐

    下面給出了20個(gè)數(shù)據(jù)庫(kù)設(shè)計(jì)最佳實(shí)踐,當(dāng)然,所謂最佳,還是要看它是否適合你的程序。一起來(lái)了解了解吧
    2014-06-06

最新評(píng)論

阳春市| 苏尼特右旗| 曲沃县| 临泉县| 宁德市| 耿马| 梁山县| 礼泉县| 漠河县| 措美县| 马边| 浙江省| 新邵县| 安宁市| 永吉县| 林口县| 安泽县| 徐水县| 日喀则市| 连山| 区。| 哈密市| 资中县| 定陶县| 乐安县| 河北省| 宜兰市| 高陵县| 屯留县| 曲水县| 南丰县| 大足县| 宁安市| 岳阳县| 广西| 崇仁县| 蒙自县| 新沂市| 兴业县| 故城县| 丰镇市|