DF學Mysql(三)——索引操作

來源:互聯網
上載者:User

標籤:style   color   使用   strong   檔案   資料   ar   時間   

概要:

資料庫物件索引其實與書的目錄非常相似,主要是為了提高從表中檢索資料的速度。

由於資料存放區在資料庫表中,所以索引是建立在資料庫表對象上的,由表中的一個欄位或多個欄位產生的鍵組成,這些鍵儲存在資料結構(B-樹或雜湊表)中。通過MYSQL可以快速有效地尋找與索引值相關聯的欄位。

索引是在儲存引擎中實現的,因此每種儲存引擎的索引都不一定完全相同,並且每種儲存引擎也不一定支援所有索引類型。

根據儲存引擎定義每個表的最大索引數和最大索引長度。所有儲存引擎支援每個表至少16個索引,總索引長度至少為256位元組。

大多數儲存引擎有更高的限制。MYSQL中索引的儲存類型有兩種:BTREE和HASH,具體和表的儲存引擎相關;

MYISAM和InnoDB儲存引擎只支援BTREE索引;MEMORY和HEAP儲存引擎可以支援HASH和BTREE索引

 

索引的優點:

1、通過建立唯一索引,保證資料庫表每行資料的唯一性

2、大大加快資料查詢速度

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

索引的缺點:

1、維護索引需要耗費資料庫資源

2、索引需要佔用磁碟空間,索引檔案可能比資料檔案更快達到最大檔案尺寸

3、當對錶的資料進行增刪改的時候,因為要維護索引,速度會受到影響

 

一般下面情況適合建立索引:

1、經常被查詢的欄位,即在WHERE子句中出現的欄位

2、在分組的欄位,即在GROUP BY子句中出現的欄位

3、存在依賴關係的子表和父表之間的聯集查詢,即主鍵或外鍵欄位

4、設定唯一完整性條件約束的欄位

 一般下面情況不適合建立索引:

1、在查詢中很少被使用的欄位

2、擁有許多重複值的欄位

 

索引的分類

1、普通索引和唯一索引

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

2、單列索引和複合索引

單列索引只包含單個列

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

3、全文索引

全文索引類型為FULLTEXT,在定義索引的列上支援值的全文尋找,允許在這些索引列中插入重複值和空值。全文索引可以在

CHAR、VARCHAR、TEXT類型列上建立。MYSQL只有MYISAM儲存引擎支援全文索引

4、空間索引

空間索引是對空間資料類型的欄位建立的索引,MYSQL中的空間資料類型有4種,

分別是GEOMETRY、POINT、LINESTRING、POLYGON。

MYSQL使用SPATIAL關鍵字進行擴充,使得能夠用於建立正規索引類型的文法建立空間索引。建立空間索引的列,必須

將其聲明為NOT NULL,空間索引只能在儲存引擎為MYISAM的表中建立

 

相關文章

聯繫我們

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