1. 程式人生 > >MySQL資料庫之-----索引操作

MySQL資料庫之-----索引操作

資料庫物件索引與書的目錄類似,主要是為了提高從表中檢索資料的速度。由於資料儲存在資料庫表中,所以索引是建立在資料庫表物件上的,由表中的一個欄位或多個欄位生成的鍵組成,這些鍵儲存在資料結構中,通過MySQL可以快速有效地查詢與鍵值相關聯的欄位。

根據索引的儲存型別,可以將索引分為B型樹索引和雜湊索引。

InnoDB和MyISAM儲存引擎支援BTREE型別索引,MEMORY儲存引擎支援HASH型別索引。

MySQL支援6種索引,它們分別為普通索引、唯一索引、全文索引、單列索引、多列索引和空間索引。

1.建立和檢視索引

所謂建立索引,就是在表的一個欄位或多個欄位上建立索引,在MySQL中,可以通過三種方式來建立索引,分別為

建立表時建立索引、在已經存在的表上建立索引和通過SQL語句ALTER TABLE建立索引。

普通索引---就是在建立索引時,不附加任何限制條件(唯一、非空等限制)。該型別的索引可以建立在任何資料型別的欄位上。

建立表時建立普通索引

MySQL所支援的儲存引擎對每個表至少支援16個索引,總索引長度至少為256位元組。

SQL命令如下:


可以看到在資料庫表t_index上建立了一個名為index_deptno的索引,其所關聯的欄位是deptno。

為了校驗資料庫表t_index中索引是否被使用,執行SQL語句EXPLAIN,


執行結果顯示,由於possible_keys和key欄位處的值都為所建立的索引名index_deptno,說明該索引已經存在,而且已經開始啟用。

在已經存在的表上建立普通索引

SQL命令: CREATE INDEX 索引名 ON 表名(屬性名  【(長度)】【ASC|DESC】)


通過SQL語句 ALTER TABLE建立普通索引

SQL命令: ALTER TABLE table_name

                      ADD  INDEX|KEY   索引名 (屬性名  【(長度)】【ASC|DESC】)


2.建立和檢視唯一索引

所謂唯一索引,就是在建立索引時,限制索引的值必須是唯一的。

建立表時建立唯一索引

SQL命令: UNIQUE INDEX命令


在已經存在的表上建立唯一索引


通過ALTER TABLE語句建立唯一索引