精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

MySql學習筆記(五):explain-數據讀取操作的操作類型-創新互聯

explain命令如下:

成都創新互聯公司致力于網站設計、成都網站制作,成都網站設計,集團網站建設等服務標準化,推過標準化降低中小企業的建站的成本,并持續提升建站的定制化服務水平進行質量交付,讓企業網站從市場競爭中脫穎而出。 選擇成都創新互聯公司,就選擇了安全、穩定、美觀的網站建設服務!mysql> explain select * from t_blog; +----+-------------+--------+------+---------------+------+---------+------+------+-------+ | id | select_type | table  | type | possible_keys | key  | key_len | ref  | rows | Extra | +----+-------------+--------+------+---------------+------+---------+------+------+-------+ |  1 | SIMPLE      | t_blog | ALL  | NULL          | NULL | NULL    | NULL |    7 |       | +----+-------------+--------+------+---------------+------+---------+------+------+-------+ 1 row in set

其中select_type列指明該條SQL的讀取操作的操作類型。

select_type共有六種類型:simple、primmy、subQuery、derived、union、union result。

1、simple

表示該條sql是簡單的select,不包含任何子查詢和union,例:

mysql> explain select * from t_blog; +----+-------------+--------+------+---------------+------+---------+------+------+-------+ | id | select_type | table  | type | possible_keys | key  | key_len | ref  | rows | Extra | +----+-------------+--------+------+---------------+------+---------+------+------+-------+ |  1 | SIMPLE      | t_blog | ALL  | NULL          | NULL | NULL    | NULL |    7 |       | +----+-------------+--------+------+---------------+------+---------+------+------+-------+ 1 row in set

2、primmy

查詢中如果包含了任何一個子查詢,最外層的查詢就會被標記為primmy,例:

mysql> explain select * from t_blog where id = (select id from t_type where name = "JAVA"); +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------------+ | id | select_type | table  | type  | possible_keys | key     | key_len | ref   | rows | Extra       | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------------+ |  1 | PRIMARY     | t_blog | const | PRIMARY       | PRIMARY | 4       | const |    1 |             | |  2 | SUBQUERY    | t_type | ALL   | NULL          | NULL    | NULL    | NULL  |    4 | Using where | +----+-------------+--------+-------+---------------+---------+---------+-------+------+-------------+ 2 rows in set

這條sql一共讀取了兩張表,t_type作為子查詢被加載,t_blog作為最外部的讀取操作,被標記為 PRIMMY。

3、subquery

查詢中,在select或where自居中包含了子查詢,該子查詢就會被標記為subquery,如上例的t_type

4、derived

在from里列表中包含了子查詢,該子查詢會被標記為derived(衍生),例:

mysql> explain select * from t_blog inner join (select id from t_type) a on t_blog.typeId = a.id; +----+-------------+------------+-------+---------------+---------+---------+------+------+-------------+ | id | select_type | table      | type  | possible_keys | key     | key_len | ref  | rows | Extra       | +----+-------------+------------+-------+---------------+---------+---------+------+------+-------------+ |  1 | PRIMARY     |  | ALL   | NULL          | NULL    | NULL    | NULL |    4 |             | |  1 | PRIMARY     | t_blog     | ALL   | NULL          | NULL    | NULL    | NULL |    7 | Using where | |  2 | DERIVED     | t_type     | index | NULL          | PRIMARY | 4       | NULL |    4 | Using index | +----+-------------+------------+-------+---------------+---------+---------+------+------+-------------+ 3 rows in set

t_type表讀取時,出現在from語句中,因此被標記為derived。mysql會先將from語句的子查詢的查詢結果放到一張臨時表中,然后再將最終的結果返回,所以,是很耗費內存的一種操作。值得注意的是,在第一行的table列出現了字樣,表示該表是個衍生虛表,他的來源根據后面的數字“2”來尋找,這個“2”就是第一列的id,表示是id為2的衍生表的衍生虛表。

5、union

若sql中包含了union,第二個select會被標記為union

mysql> explain select * from t_blog b left join t_type t on b.typeId = t.id     union     select * from t_blog b1 right join t_type t1 on b1.typeId = t1.id; +------+--------------+------------+--------+---------------+---------+---------+---------------+------+-------+ | id   | select_type  | table      | type   | possible_keys | key     | key_len | ref           | rows | Extra | +------+--------------+------------+--------+---------------+---------+---------+---------------+------+-------+ |    1 | PRIMARY      | b          | ALL    | NULL          | NULL    | NULL    | NULL          |    7 |       | |    1 | PRIMARY      | t          | eq_ref | PRIMARY       | PRIMARY | 4       | blog.b.typeId |    1 |       | |    2 | UNION        | t1         | ALL    | NULL          | NULL    | NULL    | NULL          |    4 |       | |    2 | UNION        | b1         | ALL    | NULL          | NULL    | NULL    | NULL          |    7 |       | | NULL | UNION RESULT |  | ALL    | NULL          | NULL    | NULL    | NULL          | NULL |       | +------+--------------+------------+--------+---------------+---------+---------+---------------+------+-------+ 5 rows in set

t1表和t2表都出現在union后的select,因此都被標及為union

6、union result

表示該查詢是從union表中獲取結果的select,是union的結果集,如上例,上條select就是獲取的union的結果集

另外有需要云服務器可以了解下創新互聯cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享名稱:MySql學習筆記(五):explain-數據讀取操作的操作類型-創新互聯
當前地址:http://m.jcarcd.cn/article/gdehj.html
主站蜘蛛池模板: 国产福利萌 | 国产天堂2025 | 日本色色的视频一区 | 国产欧美精| 日韩女神精品自拍 | 91干屁| 黑人性爱网 | 欧美三级精品 | 欧美性爱一级a | 九九热线有精品视频 | 91蝌蚪国产| 91福利社区试看 | 欧美午夜激情免费看 | 琪琪色18 | 韩国男女 | 9I精品福利一区 | 国产在线视频专区 | 国产伦精品 | 日韩第一页在线观看 | 欧美日韩国产色 | 91精品免费观看 | 午夜电影网 | 91九色精品 | 国产人在 | 国产午夜亚洲精 | 午夜福利一区二区 | 韩日午夜 | 精品日本在| 91国自啪| 国产又粗又猛又爽 | 美味a级片 | 国产永久免费高 | 国产69| 日韩本免费一 | 国产成a人亚 | 久一福利中心 | 精品国产90后 | 日本日韩精品 | 国产精品天天看 | 国产专区在线视频 | 国产精品资源站在线 |