簡述Mysql Explain 敕令。本站提示廣大學習愛好者:(簡述Mysql Explain 敕令)文章只能為提供參考,不一定能成為您想要的結果。以下是簡述Mysql Explain 敕令正文
MySQL的EXPLAIN敕令用於SQL語句的查詢履行籌劃(QEP)。這條敕令的輸入成果可以或許讓我們懂得MySQL 優化器是若何履行SQL語句的。這條敕令並沒有供給任何調劑建議,但它可以或許供給主要的信息贊助你做出調優決議計劃。
參考官方文檔地址:
http://dev.mysql.com/doc/refman/5.7/en/explain.html
為何用explain . 假如你的頁面前往成果很慢,你就須要應用explain去剖析你的sql能否須要優化了.
1/ 官方界說
The EXPLAIN statement provides information about how MySQL executes statements:
explain 語句供給 mysql 語句履行信息.
2/ 留意點
1) explain 能剖析的語句包含 'SELECT, DELETE, INSERT, REPLACE, and UPDATE
2) explain 可以剖析某個mysql的connection Id
3) 應用explain 檢查索引的應用 和 表的銜接次序 ,以進步查詢速度
4) 假如你有索引,然則沒有應用上,你須要ANALYZE TABLE.
彌補mysql索引掉效的情形.
1 where 前提中有or 2 多列索引不是第一部門 3 like查詢以%開首 4 字段類型是字符串,而where前提是數字 5 mysql本身估量全表掃描比索引快的時刻(假定數據成果數目已知,可經由過程索引的count()獲得成果集數目,由於索引是依據地位去0(1)讀取,所以成果集數目為T則讀取T次,全表掃描讀取數據Block,假定數據量緊湊存儲在N個Block上,全表掃描讀取N次,普通在T>N,且到達某個比例的時刻,此比例能否可設置有待研討,mysql不應用索引) SHOW SESSION STATUS LIKE 'Handler_read%' handler_read_key:這個值越高越好,越高表現應用索引查詢到的次數 handler_read_rnd_next:這個值越高,解釋查詢低效
3/ 輸入格局
重點存眷:
1 key 能否應用索引
2 rows 查詢前往的成果集數目
3 filtered 過濾的成果.
rows * filtered 得出將要聯系關系的數據條目數目.所以filtered 越小越好,rows 也是越小越好
***
explain connection Id 會剖析鏈接比來一次履行的sql語句. 成果會更改,乃至假如語句不是insert ,select 等操作會報錯. show warnings
以上所述是小編給年夜家引見的Mysql Explain 敕令,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!