<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
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MySQL數據庫優化概述一_MySQL

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

        MySQL數據庫優化概述一_MySQL

        MySQL數據庫優化概述一_MySQL:MySQL數據庫優化(一) 1. EXPLAIN 語法(得到SELECT 的相關信息) EXPLAIN tbl_name 或者: EXPLAIN SELECT select_options tableIN 語句可以被當作 DESCRIBE 的同義詞來用,也可以用來獲取一個MySQL要執行的 SELECT 語句的相關信息。EXP
        推薦度:
        導讀MySQL數據庫優化概述一_MySQL:MySQL數據庫優化(一) 1. EXPLAIN 語法(得到SELECT 的相關信息) EXPLAIN tbl_name 或者: EXPLAIN SELECT select_options tableIN 語句可以被當作 DESCRIBE 的同義詞來用,也可以用來獲取一個MySQL要執行的 SELECT 語句的相關信息。EXP

        MySQL數據庫優化(一) 

          1. EXPLAIN 語法(得到SELECT 的相關信息) 


        EXPLAIN tbl_name


          或者:  


        EXPLAIN SELECT select_options


          tableIN 語句可以被當作 DESCRIBE 的同義詞來用,也可以用來獲取一個MySQL要執行的 SELECT 語句的相關信息。EXPLAIN tbl_name 語法和 DESCRIBE tbl_name 或 SHOW COLUMNS FROM tbl_name 一樣。當在一個 SELECT 語句前使用關鍵字 EXPLAIN 時,MYSQL會解釋了即將如何運行該 SELECT 語句,它顯示了表如何連接、連接的順序等信息。本章節主要講述了第二種 EXPLAIN 用法。

          在 EXPLAIN 的幫助下,您就知道什么時候該給表添加索引,以使用索引來查找記錄從而讓 SELECT 運行更快。

          如果由于不恰當使用索引而引起一些問題的話,可以運行 ANALYZE TABLE 來更新該表的統計信息,例如鍵的基數,它能幫您在優化方面做出更好的選擇。

          您還可以查看優化程序是否以最佳的順序來連接數據表。為了讓優化程序按照 SELECT 語句中的表名的順序做連接,可以在查詢的開始使用 SELECT STRAIGHT_JOIN 而不只是 SELECT。

          EXPLAIN 返回了一行記錄,它包括了 SELECT 語句中用到的各個表的信息。這些表在結果中按照MySQL即將執行的查詢中讀取的順序列出來。MySQL用一次掃描多次連接(single-sweep, multi-join) 的方法來解決連接。這意味著MySQL從第一個表中讀取一條記錄,然后在第二個表中查找到對應的記錄,然后在第三個表中查找,依次類推。當所有的表都掃描完了,它輸出選擇的字段并且回溯所有的表,直到找不到為止,因為有的表中可能有多條匹配的記錄下一條記錄將從該表讀取,再從下一個表開始繼續處理。

          在MySQL version 4.1中,EXPLAIN 輸出的結果格式改變了,使得它更適合例如 UNION 語句、子查詢以及派生表的結構。更令人注意的是,它新增了2個字段: id 和 select_type。當你使用早于MySQL 4.1的版本就看不到這些字段了。

          EXPLAIN 結果的每行記錄顯示了每個表的相關信息,每行記錄都包含以下幾個字段:

          id

          本次 SELECT 的標識符。在查詢中每個 SELECT 都有一個順序的數值
        select_type

          SELECT 的類型,可能會有以下幾種:

          SIMPLE
          簡單的 SELECT (沒有使用 UNION 或子查詢)

          PRIMARY
          最外層的 SELECT。

          UNION
          第二層,在SELECT 之后使用了 UNION 。

          DEPENDENT UNION
          UNION 語句中的第二個 SELECT,依賴于外部子查詢

          SUBQUERY
          子查詢中的第一個 SELECT

          DEPENDENT SUBQUERY
          子查詢中的第一個 SUBQUERY 依賴于外部的子查詢

          DERIVED
          派生表 SELECT(FROM 子句中的子查詢)

          table

          記錄查詢引用的表。

          type

          表連接類型。以下列出了各種不同類型的表連接,依次是從最好的到最差的:

          system
          表只有一行記錄(等于系統表)。這是 const 表連接類型的一個特例

          const
          表中最多只有一行匹配的記錄,它在查詢一開始的時候就會被讀取出來。由于只有一行記錄,在余下的優化程序里該行記錄的字段值可以被當作是一個恒定值。const 表查詢起來非常快,因為只要讀取一次!const 用于在和 PRIMARY KEY 或 UNIQUE 索引中有固定值比較的情形。下面的幾個查詢中,tbl_name 就是 const 表了:


          SELECT * FROM tbl_name WHERE primary_key=1;
          SELECT * FROM tbl_name
          WHERE primary_key_part1=1 AND primary_key_part2=2;


          eq_ref
          從該表中會有一行記錄被讀取出來以和從前一個表中讀取出來的記錄做聯合。與 const 類型不同的是,這是最好的連接類型。它用在索引所有部分都用于做連接并且這個索引是一個 PRIMARY KEY 或 UNIQUE 類型。eq_ref 可以用于在進行"="做比較時檢索字段。比較的值可以是固定值或者是表達式,表達式中可以使用表里的字段,它們在讀表之前已經準備好了。以下的幾個例子中,MySQL使用了 eq_ref 連接來處理 ref_table:


          SELECT * FROM ref_table,other_table
          WHERE ref_table.key_column=other_table.column;
          SELECT * FROM ref_table,other_table
          WHERE ref_table.key_column_part1=other_table.column
          AND ref_table.key_column_part2=1;


          ref
          該表中所有符合檢索值的記錄都會被取出來和從上一個表中取出來的記錄作聯合。ref 用于連接程序使用鍵的最左前綴或者是該鍵不是 PRIMARY KEY 或 UNIQUE 索引(換句話說,就是連接程序無法根據鍵值只取得一條記錄)的情況。當根據鍵值只查詢到少數幾條匹配的記錄時,這就是一個不錯的連接類型。ref 還可以用于檢索字段使用 = 操作符來比較的時候。以下的幾個例子中,MySQL將使用 ref 來處理 ref_table:


          SELECT * FROM ref_table WHERE key_column=expr;
          SELECT * FROM ref_table,other_table
          WHERE ref_table.key_column=other_table.column;
          SELECT * FROM ref_table,other_table
          WHERE ref_table.key_column_part1=other_table.column
          AND ref_table.key_column_part2=1;

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

        文檔

        MySQL數據庫優化概述一_MySQL

        MySQL數據庫優化概述一_MySQL:MySQL數據庫優化(一) 1. EXPLAIN 語法(得到SELECT 的相關信息) EXPLAIN tbl_name 或者: EXPLAIN SELECT select_options tableIN 語句可以被當作 DESCRIBE 的同義詞來用,也可以用來獲取一個MySQL要執行的 SELECT 語句的相關信息。EXP
        推薦度:
        標簽: 信息 數據庫 mysql
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产亚洲美女精品久久| 亚洲国产人成在线观看| 粉色视频成年免费人15次| **aaaaa毛片免费| 亚洲国产精品一区| 久久精品人成免费| 亚洲视频在线不卡| 亚洲高清免费在线观看| 91亚洲视频在线观看| 免费精品国偷自产在线在线 | caoporm超免费公开视频| 亚洲午夜精品一级在线播放放| 一级毛片在播放免费| 亚洲AⅤ无码一区二区三区在线| 思思久久99热免费精品6| 亚洲男人在线无码视频| 男女一进一出抽搐免费视频| 国产专区一va亚洲v天堂| 天堂亚洲免费视频| 亚洲精品~无码抽插| 91免费福利精品国产| 亚洲第一页在线视频| 成人片黄网站A毛片免费| 在线aⅴ亚洲中文字幕| 免费a级毛片无码a∨性按摩| 丰满妇女做a级毛片免费观看| 亚洲一区二区三区自拍公司| 四虎影视成人永久免费观看视频| 亚洲免费观看网站| 国产乱子伦片免费观看中字| 一个人看的免费观看日本视频www 一个人看的免费视频www在线高清动漫 | 国产又大又粗又长免费视频| 国产色在线|亚洲| 亚洲A∨午夜成人片精品网站| a在线观看免费视频| 亚洲国产午夜精品理论片 | 成年在线观看免费人视频草莓| 成人亚洲国产精品久久| 久久精品国产亚洲AV麻豆王友容| 在线看免费观看AV深夜影院| 猫咪www免费人成网站|