mysql 索引效能介紹

2021-08-14 04:41:18 字數 1930 閱讀 5883

表的名稱。

non_unique

如果索引不能包括重複詞,則為0。如果可以,則為1。

key_name

索引的名稱。

seq_in_index

索引中的列序列號,從1開始。

column_name

列名稱。

collation

列以什麼方式儲存在索引中。在mysqlshow index語法中,有值』a』(公升序)或null(無分類)。

cardinality

索引中唯一值的數目的估計值。通過執行analyze table或myisamchk -a可以更新。基數根據被儲存為整數的統計資料來計數,所以即使對於小型表,該值也沒有必要是精確的。基數越大,當進行聯合時,mysql使用該索引的機會就越大。

sub_part

如果列只是被部分地編入索引,則為被編入索引的字元的數目。如果整列被編入索引,則為null。

packed

指示關鍵字如何被壓縮。如果沒有被壓縮,則為null。

null

如果列含有null,則含有yes。如果沒有,則該列含有no。

index_type

用過的索引方法(btree, fulltext, hash, rtree)。

comment

多種評注。

select查詢的序列號

select_type

select查詢的型別,主要是區別普通查詢和聯合查詢、子查詢之類的複雜查詢。

table

輸出的行所引用的表。

type

聯合查詢所使用的型別。

type顯示的是訪問型別,是較為重要的乙個指標,結果值從好到壞依次是:

system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > all

一般來說,得保證查詢至少達到range級別,最好能達到ref。

possible_keys

指出mysql能使用哪個索引在該表中找到行。如果是空的,沒有相關的索引。這時要提高效能,可通過檢驗where子句,看是否引用某些字段,或者檢查字段不是適合索引。

key顯示mysql實際決定使用的鍵。如果沒有索引被選擇,鍵是null。

key_len

顯示mysql決定使用的鍵長度。如果鍵是null,長度就是null。文件提示特別注意這個值可以得出乙個多重主鍵裡mysql實際使用了哪一部分。

ref顯示哪個欄位或常數與key一起被使用。

rows

這個數表示mysql要遍歷多少資料才能找到,在innodb上是不準確的。

extra

如果是only index,這意味著資訊只用索引樹中的資訊檢索出的,這比掃瞄整個表要快。

如果是where used,就是使用上了where限制。

如果是impossible where 表示用不著where,一般就是沒查出來啥。

如果此資訊顯示using filesort或者using temporary的話會很吃力,where和order by的索引經常無法兼顧,如果按照where來確定索引,那麼在order by時,就必然會引起using filesort,這就要看是先過濾再排序划算,還是先排序再過濾划算。

關於mysql效能分析及explain用法的知識就介紹到這裡了,希望本次的介紹能夠對您有所收穫!

mysql高效能索引 mysql高效能索引( )

在開發中,我們知道大多數應用的瓶頸在於sql語句的執行時耗,在這裡並不討論sql語句的安全,僅僅討論高效能sql語句,而與高效能sql語句緊密相連的就是傳說中的 索引。索引 一種工作在儲存引擎端的用於快速找到記錄的一種資料結構。mysql使用索引的方式是 先找到索引的值,再根據索引的值找到資料行。索...

MySQL索引介紹

索引由資料庫表中一列或者多列組合而成,其作用是提高對錶中資料的查詢速度。建立索引是指在某個表的一列或者多列上建立乙個索引,用來提高對錶的訪問速度,建立索引由三種方法 在建立表的時候建立,在已存在的表上建立和用alter table語句建立。建立索引的基本語法格式 asc引數表示公升序排列,desc引...

MySQL索引介紹

簡單理解為 排好序的快速查詢資料結構 一般來說索引本身也很大,不可能全部儲存在記憶體中,因此索引往往以索引檔案的形式儲存在磁碟上。我們平常所說的索引,如果沒有特別指明,一般都是指b樹結構組織的索引 b 樹索引 b 樹索引檢索原理 1 類似圖書館書目索引,提高資料檢索的效率,降低資料庫的io成本。2 ...