程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 簡述Mysql Explain 敕令

簡述Mysql Explain 敕令

編輯:MySQL綜合教程

簡述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 敕令,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved