首頁 >資料庫 >mysql教程 >mysql索引是什麼意思

mysql索引是什麼意思

(*-*)浩
(*-*)浩原創
2019-05-31 15:12:0314399瀏覽

什麼是索引?

mysql索引是什麼意思

MySQL官方對索引的定義為:索引(Index)是幫助MySQL有效率地取得資料的資料結構。我們可以簡單理解為:快速找出排好序的一種資料結構。 Mysql索引主要有兩種結構:B Tree索引和Hash索引。我們平常所說的索引,如果沒有特別指明,一般都是指B樹結構組織的索引(B Tree索引)。

索引的類型

索引類型有多種,雜湊、BTREE、全文索引等,其實不管什麼類型,都是為了在特定業務場景下方便快速找出資料的演算法。

例如雜湊索引,key-value形式,最簡單的,書本的目錄也是類似的。

假如有一本書中,我們已知文章標題要找到這篇文章來閱讀,如果沒有目錄,我們就要翻整本書去找標題,

#但是如果標題單獨抽出來當key,頁碼當value就可以快速找到內容。

顯然書本開頭的目錄是要佔用幾頁紙的,建立索引也是要消耗資源的。

BTREE索引是另一種演算法,不同業務場景使用對應索引會更有效率。

就好比新華字典的目錄跟普通的書本目錄不同,新華字典可以透過拼音或偏旁部首的查詢方法去快速查到字在第幾頁,這也是一種「索引」

還有全文索引等,這裡不在描述,例如solr、elasticsearch使用的演算法可以去研究一下

索引概念

##索引本質:索引就是資料庫表中字段值的複製,該字段稱為索引的關鍵字

索引也是一張表,該表保存了主鍵與索引字段,並指向實體表的記錄

索引往往透過複雜的資料結構(雙向鍊錶、B 樹/B樹、hash)實現

MyISAM儲存引擎的表支援主索引,InnoDB儲存引擎的表支援叢集索引(主索引)與非聚簇索引(輔助索引)索引最佳化使用

索引的優缺點

#@優點:

#MySQL的索引的建立對於MySQL的高效能運行非常重要,可以大大提高MySQL的檢索速度。

在分組和排序字句進行資料檢索,可以減少查詢時間中分組和排序時所消耗的時間(資料庫的記錄會重新排序)

在表連接的連接條件可以加速表與表直接的相連

@缺點:

但過度使用索引會造成索引濫用,提高了檢索速度,缺失降低了表的更新速度

#如:對錶進行增刪改查操作時,MySQL不僅要保存數據,還要保存索引文件,建立索引會佔用磁碟空間的索引文件

在創建索引和維護索引會耗費時間,隨著數據量的增加而增加

以上是mysql索引是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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