首頁  >  文章  >  資料庫  >  mysql慢查詢和EXPLAIN的相關介紹

mysql慢查詢和EXPLAIN的相關介紹

零下一度
零下一度原創
2017-05-12 11:04:031731瀏覽

前記:今天,資料庫的操作越來越成為整個應用的效能瓶頸了,這點對於Web應用尤其明顯。關於資料庫的效能,這不只是DBA需要擔心的事,而這更是我們程式設計師需要去關注的事情。當我們去設計資料庫表結構,對操作資料庫時(尤其是查表時的SQL語句),我們都需要注意資料操作的效能。

1、開啟慢查詢

1> 查看慢查询是否开启
   show variables like "%quer%";
   slow_query_log = ON  #已开启

2> 開啟方法:my.cnf目錄設定

  slow_query_log=on #是否开启
   slow_query_log_file=/opt/MySQL_Data/TEST1-slow.log #慢查询文件位置
   long_query_time=2 #查询超过多少秒才记录

2、EXPLAIN慢查詢日誌裡出現的SELECT查詢

explain列的解釋

table:顯示這一行的資料是關於哪張表的

type:這是重要的列,顯示連接使用了何種類型。從最好到最差的連接類型為const、eq_reg、ref、range、index、all

possible_keys:顯示可能套用在這張表中的索引。如果為空,沒有可能的索引。可以為相關的域從where語句中選擇一個適當的語句

key: 實際使用的索引。如果為null,則沒有使用索引。很少的情況下,mysql會選擇優化不足的索引。在這種情況下,可以在select語句中使用use index(indexname)來強制使用一個索引或用ignore index(indexname)來強制mysql忽略索引

key_len:使用的索引的長度。在不損失精確性的情況下,長度越短越好

ref:顯示索引的哪一列被使用了,如果可能的話,是一個常數

rows:mysql認為必須檢查的用來傳回請求資料的行數

extra:關於mysql如何解析查詢的額外資訊。例:using temporary和using filesort,意思mysql根本不能使用索引,結果是檢索會很慢

【相關推薦】

1. 免費mysql線上影片教學

2. MySQL最新手冊教學

3. 資料庫設計那些事

以上是mysql慢查詢和EXPLAIN的相關介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn