国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql之explain使用詳解(分析索引)

2024-07-24 12:50:42
字體:
來源:轉載
供稿:網友

explain顯示了mysql如何使用索引來處理select語句以及連接表。可以幫助選擇更好的索引和寫出更優化的查詢語句。

使用方法,在select語句前加上explain就可以了,如:

explain select * from statuses_status where id=11;

explain列的解釋

table:顯示這一行的數據是關于哪張表的

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

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

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

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

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

rows:mysql認為必須檢查的用來返回請求數據的行數

extra:關于mysql如何解析查詢的額外信息。將在表4.3中討論,但這里可以看到的壞的例子是using temporary和using filesort,意思mysql根本不能使用索引,結果是檢索會很慢

extra列返回的描述的意義

distinct:一旦mysql找到了與行相聯合匹配的行,就不再搜索了

not exists: mysql優化了left join,一旦它找到了匹配left join標準的行,就不再搜索了

range checked for each record(index map:#):沒有找到理想的索引,因此對于從前面表中來的每一個行組合,mysql檢查使用哪個索引,并用它來從表中返回行。這是使用索引的最慢的連接之一

using filesort: 看到這個的時候,查詢就需要優化了。mysql需要進行額外的步驟來發現如何對返回的行排序。它根據連接類型以及存儲排序鍵值和匹配條件的全部行的行指針來排序全部行

using index: 列數據是從僅僅使用了索引中的信息而沒有讀取實際的行動的表返回的,這發生在對表的全部的請求列都是同一個索引的部分的時候

using temporary 看到這個的時候,查詢需要優化了。這里,mysql需要創建一個臨時表來存儲結果,這通常發生在對不同的列集進行order by上,而不是group by上

where used 使用了where從句來限制哪些行將與下一張表匹配或者是返回給用戶。如果不想返回表中的全部行,并且連接類型all或index,這就會發生,或者是查詢有問題不同連接類型的解釋(按照效率高低的順序排序)

system 表只有一行:system表。這是const連接類型的特殊情況

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 麻阳| 江城| 祁门县| 应用必备| 章丘市| 山东| 张家港市| 淮北市| 福安市| 广宁县| 田林县| 福州市| 呈贡县| 榕江县| 杭锦旗| 广宁县| 沅江市| 西和县| 隆德县| 阳城县| 西乌珠穆沁旗| 若羌县| 永嘉县| 岳阳市| 大兴区| 临江市| 邢台市| 泽普县| 肥西县| 青河县| 兴隆县| 济宁市| 北票市| 泉州市| 广安市| 旬邑县| 同心县| 池州市| 华池县| 云安县| 汉寿县|