mysql索引學習

來源:互聯網
上載者:User

標籤:

索引用於快速找出在某列中有一特定值的行。

如果不實用索引,MySQL必須從第一條記錄開始讀完整個表,直到找出相關的行。

表越大,查詢資料所花費的時間越多。

如果表中查詢的列有一個索引,MySQL能快速到達一個位置去搜尋資料檔案,而不必查看所有的資料。

內容導航

瞭解什麼是索引

掌握建立索引的方法和技巧

熟悉如何刪除索引

掌握綜合案例中索引建立的方法和技巧

熟悉操作索引常見的問題

 

索引簡介

索引是對資料庫表中一列貨多列的值進行排序的一種結構,使用索引可提高資料庫中特定資料的查詢速度。

 

索引的含義和特點

索引是一個單獨的、儲存在磁碟上的資料庫結構,它們包含著對資料表裡所有記錄的引用的指標。使用索引用於快速找出在某個或多個列中有一特定值的行,所有MySQL列類型都可以被索引,對相關列使用索引是提高查詢操作速度的最佳途徑。

例如:資料庫中有2萬條記錄,現在要執行這樣一個查詢:select * from table where num=10000。如果沒有索引,必須遍曆整個表,直到num等於10000的這一行被找到為止;如果在num列上建立索引,MySQL不需要任何掃描,直接在索引裡面找10000,就可以得知這一行的位置。可以,建立索引可以提高資料庫的查詢速度。

索引是在儲存引擎中實現的,因此每種儲存引擎的索引都不一定完全相同,並且每種儲存引擎也不一定支援所有的索引類型。根據儲存引擎定義每個表的最大索引數和最大索引長度。所有儲存引擎支援每個表至少16個索引,總索引長度至少為256位元組。大多數儲存引擎有更高的限制。MySQL中索引的儲存類型有兩種:BTREE和HASH,具體和表的儲存引擎相關。

引擎的優點主要有以下幾條:

通過建立唯一索引,可以保證資料庫表中的每一行資料的唯一性。

可以大大加快資料的查詢速度,這也是建立索引的最主要的原因。

在實現資料的參考完整性方面,可以加快表和表之間的串連。

在使用分組和排序子句進行資料查詢時,也可以顯著減少查詢中分組和排序的時間。

增加索引也有許多不利的方面:

建立索引和維護索引要耗費時間,並且隨著資料量的增加所耗費的時間也會增加。

索引需要佔磁碟空間,除了資料表佔據資料空間之外,每一個索引還要佔一定的物理空間,如果有大量的索引,索引檔案可能比資料檔案更快達到最大尺寸。

當對錶中的資料進行增加、刪除和修改的時候,索引也要動態維護,這樣就降低了資料的維護速度。

索引的分類

普通索引和唯一索引

普通索引和唯一索引是MySQL中的基本索引類型,允許定義索引的列中插入重複值和空值。

唯一索引,索引列的值必須唯一,但允許有空值。如果是複合式索引,則列值的組合必須唯一。

主鍵索引是一種特殊的唯一索引,不允許有空值。

單列索引和複合式索引

單列索引即一個索引只包含單個列,一個表上可以有多個單列索引。

複合式索引指在表的多個欄位組合上建立的索引,只有在查詢條件中使用了這些欄位的左邊欄位時,索引才會被使用。使用複合式索引時遵循最左首碼集合。

全文索引

全文索引類型為FULLTEXT,在定義索引的列上支援值的全文尋找,允許在這些索引列中插入重複值和空值。全文索引可以在CHAR、VARCHAR或者TEXT類型的列上建立。MySQL只有MyISAM儲存引擎支援全文索引。

空間索引

空間索引是對空間資料類型的欄位建立索引,MySQL中的空間資料類型有4種,分別是:GEOMETRY、POINT、LINESTRING和POLYGON。MySQL使用SPATIAL關鍵字進行擴充,使得能夠用於建立正規索引類似的文法建立空間索引。建立空間索引的列必須聲明為NOT NULL,空間索引只能在儲存引擎為MyISAM的表的中建立。

索引的設計原則

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.