<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MySQL優化之如何查找SQL效率低的原因_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 19:17:38
        文檔

        MySQL優化之如何查找SQL效率低的原因_MySQL

        MySQL優化之如何查找SQL效率低的原因_MySQL:查詢到效率低的 SQL 語句 后,可以通過 EXPLAIN 或者 DESC 命令獲取 MySQL 如何執行 SELECT 語句的信息,包括在 SELECT 語句執行過程中表如何連接和連接的順序,比如我們想計算 2006 年所有公司的銷售額,需要關聯 sales 表和 company 表,并
        推薦度:
        導讀MySQL優化之如何查找SQL效率低的原因_MySQL:查詢到效率低的 SQL 語句 后,可以通過 EXPLAIN 或者 DESC 命令獲取 MySQL 如何執行 SELECT 語句的信息,包括在 SELECT 語句執行過程中表如何連接和連接的順序,比如我們想計算 2006 年所有公司的銷售額,需要關聯 sales 表和 company 表,并

        查詢到效率低的 SQL 語句 后,可以通過 EXPLAIN 或者 DESC 命令獲取 MySQL 如何執行 SELECT 語句的信息,包括在 SELECT 語句執行過程中表如何連接和連接的順序,比如我們想計算 2006 年所有公司的銷售額,需要關聯 sales 表和 company 表,并且對 profit 字段做求和( sum )操作,相應 SQL 的執行計劃如下:
        mysql> explain select sum(profit) from sales a,company b where a.company_id = b.id and a.year = 2006/G;
        *************************** 1. row ***************************
        id: 1
        select_type: SIMPLE
        table: a
        type: ALL
        possible_keys: NULL
        key: NULL
        key_len: NULL
        ref: NULL
        rows: 12
        Extra: Using where
        *************************** 2. row ***************************
        id: 1
        select_type: SIMPLE
        table: b
        type: ALL
        possible_keys: NULL
        key: NULL
        key_len: NULL
        ref: NULL
        rows: 12
        Extra: Using where
        2 rows in set (0.00 sec)

        每個列的解釋如下:

        •select_type :表示 SELECT 的 類型,常見的取值有 SIMPLE (簡單表,即不使用表連接或者子查詢)、 PRIMARY (主查詢,即外層的查詢)、 UNION ( UNION 中的第二個或者后面的查詢語句)、 SUBQUERY (子查詢中的第一個 SELECT )等。

        •table :輸出結果集的表。

        •type :表示表的連接類型,性能由好到差的連接類型為 system (表中僅有一行,即常量表)、 const (單表中最多有一個匹配行,例如 primary key 或者 unique index )、 eq_ref (對于前面的每一行,在此表中只查詢一條記錄,簡單來說,就是多表連接中使用 primary key 或者 unique index )、 ref (與 eq_ref 類似,區別在于不是使用 primary key 或者 unique index ,而是使用普通的索引)、 ref_or_null ( 與 ref 類似,區別在于條件中包含對 NULL 的查詢 ) 、 index_merge ( 索引合并優化 ) 、 unique_subquery ( in 的后面是一個查詢主鍵字段的子查詢)、 index_subquery ( 與 unique_subquery 類似,區別在于 in 的后面是查詢非唯一索引字段的子查詢)、 range (單表中的范圍查詢)、 index (對于前面的每一行,都通過查詢索引來得到數據)、 all (對于前面的每一行,都通過全表掃描來得到數據)。

        •possible_keys :表示查詢時,可能使用的索引。
        •key :表示實際使用的索引。
        •key_len :索引字段的長度。
        •rows :掃描行的數量。
        •Extra :執行情況的說明和描述。

        在上面的例子中,已經可以確認是 對 a 表的全表掃描導致效率的不理想,那么 對 a 表的 year 字段創建索引,具體如下:

        mysql> create index idx_sales_year on sales(year);
        Query OK, 12 rows affected (0.01 sec)
        Records: 12 Duplicates: 0 Warnings: 0
        創建索引后,這條語句的執行計劃如下:
        mysql> explain select sum(profit) from sales a,company b where a.company_id = b.id and a.year = 2006/G;
        *************************** 1. row ***************************
        id: 1
        select_type: SIMPLE
        table: a
        type: ref
        possible_keys: idx_sales_year
        key: idx_sales_year
        key_len: 4
        ref: const
        rows: 3
        Extra:
        *************************** 2. row ***************************
        id: 1
        select_type: SIMPLE
        table: b
        type: ALL
        possible_keys: NULL
        key: NULL
        key_len: NULL
        ref: NULL
        rows: 12
        Extra: Using where
        2 rows in set (0.00 sec)

        可以發現建立索引后對 a 表需要掃描的行數明顯減少(從全表掃描減少到 3 行),可見索引的使用可以大大提高數據庫的訪問速度,尤其在表很龐大的時候這種優勢更為明顯,使用索引優化 sql 是優化問題 sql 的一種常用基本方法,在后面的章節中我們會具體介紹如何使索引來優化 sql 。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        MySQL優化之如何查找SQL效率低的原因_MySQL

        MySQL優化之如何查找SQL效率低的原因_MySQL:查詢到效率低的 SQL 語句 后,可以通過 EXPLAIN 或者 DESC 命令獲取 MySQL 如何執行 SELECT 語句的信息,包括在 SELECT 語句執行過程中表如何連接和連接的順序,比如我們想計算 2006 年所有公司的銷售額,需要關聯 sales 表和 company 表,并
        推薦度:
        標簽: 信息 如何 sql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top 主站蜘蛛池模板: xvideos永久免费入口| 色老板亚洲视频免在线观| 五月天婷婷免费视频| 亚洲AⅤ永久无码精品AA| 美女视频黄a视频全免费网站色| 四虎影在线永久免费观看| 久久久久久亚洲精品无码| 韩国免费三片在线视频| 真正全免费视频a毛片| 伊人久久亚洲综合影院| 伊人免费在线观看高清版| 亚洲va国产va天堂va久久| 免费无码毛片一区二区APP| 亚洲精品韩国美女在线| 精品久久久久国产免费| 美女又黄又免费的视频| 国产中文在线亚洲精品官网| 一个人免费视频观看在线www| 亚洲专区在线视频| 成人毛片免费观看视频大全| 日韩精品亚洲专区在线影视| 国产中文在线亚洲精品官网| 一级毛片成人免费看免费不卡| 亚洲人成电影青青在线播放| 国产精品嫩草影院免费| 久久久久久噜噜精品免费直播| 亚洲视频在线观看免费| 无码中文在线二区免费| 免费国产黄网站在线看| 无码乱人伦一区二区亚洲一| 青青久在线视频免费观看| 一区二区三区免费在线视频 | 最近最新的免费中文字幕| 亚洲AⅤ男人的天堂在线观看| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久被窝电影亚洲爽爽爽| 最近中文字幕电影大全免费版 | 一级毛片大全免费播放下载| 亚洲国产精品线在线观看| 国产精品美女自在线观看免费| 中出五十路免费视频|