高效能索引-高效能索引策略二

來源:互聯網
上載者:User

標籤:記憶體   擷取   索引值   讀取資料   主鍵索引   避免   sql   取數   isa   

1.覆蓋索引

  索引是一種尋找資料的高效方式,如果MySQL可以使用索引來直接擷取列的資料,這樣就不再需要讀取資料行。如果一個索引包含所有需要查詢的欄位的值,就稱之為“覆蓋索引”。覆蓋索引具有以下好處:

  • 索引條目通常遠小於資料行大小,所以如果只需要讀取索引,就會極大的減少資料的訪問。
  • 索引是按列值順序儲存的,所以對I/O密集型的範圍查詢會比隨機從磁碟讀取每一行資料的I/O要少的多。
  • 一些儲存引擎如MyISAM在記憶體只會緩衝索引。
  • 由於InnoDB的聚族索引,覆蓋索引對InnoDB非常有用。InnoDB的二級索引在葉子節點中儲存了行的主索引值,所以如果二級索引能夠覆蓋查詢,則可以避免對主鍵索引的二次查詢。

  不是所有類型的索引都可以成為覆蓋索引。覆蓋索引必須要儲存索引列的值,而雜湊索引、空間索引和全文索引都不儲存索引列的值,所以MySQL只能使用B-Tree索引做覆蓋索引。

  MySQL能夠在索引中做最左首碼匹配的LIKE比較,因為該操作可以轉換為簡單的比較操作,但是如果是萬用字元開頭的LIKE查詢,儲存引擎就無法匹配。

高效能索引-高效能索引策略二

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.