MySQL中的索引

來源:互聯網
上載者:User

標籤:資料表   index   str   必須   最好   否則   style   分詞   提高   

一 索引基礎

1、定義:

  在MySQL中,索引(index)也叫做“鍵(key)”,他是儲存引擎用於快速找到記錄的一種資料結構,可以提高查詢效率。

  對查詢效能最佳化的最有效手段就是索引最佳化。

2、工作原理:

  在MySQL中,索引是在儲存引擎層實現的,而不是在伺服器層。

  在MySQL中,儲存引擎用類似的方法使用索引,其先在索引中尋找對應的值,然後根據匹配的索引記錄來找到對應的資料行,最後將資料結果集返回給用戶端。

3、索引類型:

(1)常規索引:

  也叫普通索引(index或key),一張資料表中可以有多個常規索引。

  一般沒有指明索引的類型,都是指常規索引。

(2)主鍵索引 - primary key

  簡稱主鍵,提供唯一性限制式。一張表中只能有一個主鍵。

  被標誌為自動成長的欄位一定是主鍵,但是主鍵不一定是自動成長。

  一般把主鍵定義在例如編號之類的欄位上,其資料類型最好是數值。

(3)唯一索引 - unique key

  提供唯一性限制式。一張表中可以有多個唯一索引。

(4)全文索引 - Full Text

  可以提高全文檢索搜尋的查詢效率,一般使用Sphinx替代,但是Sphinx不支援中文檢索。

  Coreseek是支援中文的全文檢索索引引擎,也稱作具有中文分詞功能的Sphinx。

  實際項目中,用到的是Coreseek。

(5)外鍵索引 - Foreign key

  簡稱外鍵,外鍵會自動和對應的其他表的主鍵關聯。

  外鍵的主要作用是保證記錄的一致性和完整性,但是由於外鍵的效率不是很高,所以並不推薦使用外鍵。

  注意:只有InnoDB儲存引擎的表才支援外鍵。如果要刪除父類中的記錄,必須先刪除子表中的額相應記錄,否則會出錯。

4、索引的方法

主要有以下幾種:

(1)B-Tree索引:

  如果沒有特別指明類型,那一般說的就是B-Tree索引。B-Tree對索引是順序儲存的,因此和適合尋找範圍資料。

  因為儲存引擎不在需要進行全表掃描來擷取需要的資料,故能夠加快訪問資料的速度。

  注意:不同的儲存引擎以不同的方式使用B-Tree索引,效能也各不相同。

     例如:MyISAM使用首碼壓縮技術使得索引更小,但InnoDB則按照原始的資料格式儲存索引。

      再如:MyISAM通過資料的物理位置引用被索引的行,而InnoDB則根據主鍵引用被索引的行。

 

  

 

資料來源:MySQL索引詳情

MySQL中的索引

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.