標籤: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的表中建立